今天學習遇到的函式,eval()就是將字串轉換為它所代表的值,比如說下面的應用場景,輸入人民幣值轉換為美元,中間有個匯率計算,input()返回的值為字串,所以該值不能進行後面的匯率計算。>>> 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)) #將字串轉換為字典
<
class
'dict'
>
執行結果報錯:rmb_value =
input
('請輸入人民幣金額:'
)usd_vs_rmb =
6.77
usd_value = rmb_value / usd_vs_rmb
('美元金額是:'
,usd_value)
加入eval()轉換函式: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'
執行結果:rmb_value =
input
('請輸入人民幣金額:'
) #返回字元型
rmb_value =
eval
(rmb_value) #轉換為數字
usd_vs_rmb =
6.77
usd_value = rmb_value / usd_vs_rmb
('美元金額是:'
,usd_value)
請輸入人民幣金額:5
美元金額是: 0.7385524372230429
Python之eval 函式的危險
python的eval 函式可以把字串 123 變成數字型別的123,pp3e上說它很危險,還可以執行其他命令!在家沒事,做了些試驗。果然,如果python寫的cgi程式中如果使用eval 而非int 來轉換諸如年齡這樣的輸入框中的內容時是非常危險的。不僅可以看見列出系統的全部檔案,還可以刪除檔案,...
Python之eval函式的用法
功能 將字串str當成有效的表示式來求值並返回計算結果。語法 eval source globals locals value 引數 source 乙個python表示式或函式compile 返回的 物件 globals 可選。必須是dictionary locals 可選。任意map物件 將字串轉...
python之函式eval()學習
python中有許多很有用的內建函式,比如 eval 這個函式。能夠熟練的使用這些內建函式可以起到很多事半功倍的功效。eval 官方文件裡面給出來的功能解釋是 將字串string物件轉化為有效的表示式參與求值運算返回計算結果。語法上 呼叫的是 eval expression,globals none...