java計(jì)算數(shù)學(xué)表達(dá)式 Python中給定一組數(shù)字和運(yùn)算符,如何把數(shù)字按照給定的運(yùn)算符計(jì)算出結(jié)果?
Python中給定一組數(shù)字和運(yùn)算符,如何把數(shù)字按照給定的運(yùn)算符計(jì)算出結(jié)果?Python eval方法可以實(shí)現(xiàn)上述需求,具體使用介紹如下。eval()方法介紹功能:將字符串str當(dāng)成有效的表達(dá)式來求值并
Python中給定一組數(shù)字和運(yùn)算符,如何把數(shù)字按照給定的運(yùn)算符計(jì)算出結(jié)果?
Python eval方法可以實(shí)現(xiàn)上述需求,具體使用介紹如下。
eval()方法介紹
功能:將字符串str當(dāng)成有效的表達(dá)式來求值并返回計(jì)算結(jié)果。
語法: eval(source[, globals[, locals]])
參數(shù):
source:必填,一個(gè)Python表達(dá)式的字符串或者compile()返回的代碼對(duì)象
globals:非必填,必須是dictionary
locals:非必填,任何映射對(duì)象,默認(rèn)與globals參數(shù)一致
代碼實(shí)現(xiàn)
如果globals,locals參數(shù)都不指定,表達(dá)式將在eval調(diào)用的環(huán)境中執(zhí)行,即默認(rèn)為globals()和locals()函數(shù)中包含的模塊和函數(shù),這就使得eval方法存在一定的安全風(fēng)險(xiǎn)。
所以出于安全考慮,對(duì)字符串進(jìn)行類型轉(zhuǎn)換的時(shí)候,最好使用函數(shù),而該模塊下的函數(shù),則會(huì)判斷需要計(jì)算的內(nèi)容計(jì)算后是不是合法的python類型,如果是則進(jìn)行運(yùn)算,否則就不進(jìn)行運(yùn)算。
若對(duì)你有所幫助,歡迎大家評(píng)論、留言,歡迎關(guān)注。