功能:將字串str當成有效的表示式來求值並返回計算結果。
語法: eval(source[, globals[, locals]]) -> value
引數:source:乙個python表示式或函式compile()返回的**物件
globals:可選。必須是dictionary
locals:可選。任意map物件
#將字串轉換為字典
data_dict= eval(str)
print(data_dict)
username = data_dict.get("username")
password = data_dict.get("password")
示例1
>>> a = '[1,2,3]'
>>> type(a)
>>> type(eval(a)) #將字串轉換為列表
>>> b = '1000'
>>> type(b)
>>> type(eval(b)) #將字串轉換為整形
>>> c = ""
>>> type(c)
>>> type(eval(c)) #將字串轉換為字典
示例2
比如說下面的應用場景,輸入人民幣值轉換為美元,中間有個匯率計算,input()返回的值為字串,所以該值不能進行後面的匯率計算。
rmb_value = input('請輸入人民幣金額:')
usd_vs_rmb = 6.77
usd_value = rmb_value / usd_vs_rmb
print('美元金額是:',usd_value)
執行結果報錯
traceback (most recent call last):
file "h.py", line 4, in usd_value = rmb_value / usd_vs_rmb
typeerror: unsupported operand type(s) for /: 'str' and 'float'
加入eval()轉換函式
rmb_value = input('請輸入人民幣金額:') #返回字元型
rmb_value = eval(rmb_value) #轉換為數字
usd_vs_rmb = 6.77
usd_value = rmb_value / usd_vs_rmb
print('美元金額是:',usd_value)
執行結果
請輸入人民幣金額:5
美元金額是: 0.7385524372230429
Python之eval 函式的危險
python的eval 函式可以把字串 123 變成數字型別的123,pp3e上說它很危險,還可以執行其他命令!在家沒事,做了些試驗。果然,如果python寫的cgi程式中如果使用eval 而非int 來轉換諸如年齡這樣的輸入框中的內容時是非常危險的。不僅可以看見列出系統的全部檔案,還可以刪除檔案,...
Python之eval函式的用法
a 1,2,3 type a class str type eval a 將字串轉換為列表 class list b 1000 type b class str type eval b 將字串轉換為整形 class int c type c class str type eval c 將字串轉換為字...
python之函式eval()學習
python中有許多很有用的內建函式,比如 eval 這個函式。能夠熟練的使用這些內建函式可以起到很多事半功倍的功效。eval 官方文件裡面給出來的功能解釋是 將字串string物件轉化為有效的表示式參與求值運算返回計算結果。語法上 呼叫的是 eval expression,globals none...