python內建函式 eval

2022-08-11 00:27:18 字數 879 閱讀 4619

eval()為python的內建函式,它將字串轉化為有效的表示式計算,並返回計算結果。簡單理解為將你輸入的字串當成python表示式執行。

1、概念比較簡單,看下面的例子:

from functools import

reduce

value1 = eval("

1+1+2+3+5+8+13+21")

print

(value1)

a = [1, 2, 3]

eval(""

)print

(a)print(type(eval("

")))

b = [1, 2, 3, 4, 5, 6]

print(eval("

reduce(lambda x, y: x*y, b)

")) #

階乘結果:

54

[1, 2, 3, 4]

720

input_data = input("

請輸入數學表示式!")

value2 =eval(input_data)

print(value2)

執行程式使用者輸入:

請輸入數學表示式!1+3+5+7+9

結果:25

eval()函式雖然在很多情況下能夠帶來便利,但是要慎用,因為它能夠將字串轉化為表示式執行,外部可以利用這個特性執行系統命令,刪除、建立檔案等操作,造成安全隱患。

如上述例子2,假設使用者輸入的不是數學表示式,而是其他指令,可能會造成安全隱患。

"

__import__('os').system(ls /user/)

"

python內建函式eval

eval 官方文件裡面給出來的功能解釋是 將字串string物件轉化為有效的表示式參與求值運算返回計算結果 語法上 呼叫的是 eval expression,globals none,locals none 返回的是計算結果 expression是乙個參與計算的python表示式 globals是可...

python內建函式 eval函式

最近在學習python的過程中,遇到了eval 函式,所以便查資料進行了細緻了解,這位大哥的部落格介紹的非常明白,我看了之後才徹底理解,大家可以去看看。eval 函式用來執行乙個字串表示式,並返回表示式的值,通俗地講就是去掉引數最外層引號並執行語句。注意 eval的引數必須是字串,否則將會報錯。ev...

python之函式eval()學習

python中有許多很有用的內建函式,比如 eval 這個函式。能夠熟練的使用這些內建函式可以起到很多事半功倍的功效。eval 官方文件裡面給出來的功能解釋是 將字串string物件轉化為有效的表示式參與求值運算返回計算結果。語法上 呼叫的是 eval expression,globals none...