eval()為python的內建函式,它將字串轉化為有效的表示式計算,並返回計算結果。簡單理解為將你輸入的字串當成python表示式執行。
1、概念比較簡單,看下面的例子:
from functools import54reduce
value1 = eval("
1+1+2+3+5+8+13+21")
(value1)
a = [1, 2, 3]
eval(""
(a)print(type(eval("
")))
b = [1, 2, 3, 4, 5, 6]
print(eval("
reduce(lambda x, y: x*y, b)
")) #
階乘結果:
[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...