Python之eval函式的用法

2021-09-08 20:20:23 字數 1529 閱讀 1645

>>> 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'

>

今天學習遇到的函式,eval()就是將字串轉換為它所代表的值,比如說下面的應用場景,輸入人民幣值轉換為美元,中間有個匯率計算,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函式的用法

功能 將字串str當成有效的表示式來求值並返回計算結果。語法 eval source globals locals value 引數 source 乙個python表示式或函式compile 返回的 物件 globals 可選。必須是dictionary locals 可選。任意map物件 將字串轉...

python之函式eval()學習

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