十五 python沉澱之路 eval 的用法

2022-04-09 06:39:53 字數 2019 閱讀 8221

一、eval函式

python eval() 函式的功能:將字串str當成有效的表示式來求值並返回計算結果。

語法:eval(source[, globals[, locals]]) -> value

引數:source:乙個python表示式或函式compile()返回的**物件

globals:可選。必須是dictionary

locals:可選。任意map物件

如果提供了globals引數,那麼它必須是dictionary型別;如果提供了locals引數,那麼它可以是任意的map物件。

python的全域性名字空間儲存在乙個叫globals()的dict物件中;區域性名字空間儲存在乙個叫locals()的dict物件中。我們可以用print (locals())來檢視該函式體內的所有變數名和變數值。

1 x = 1

2 y = 1

3 num = eval("

x+y")4

print('

num'

,num)56

defg():

7 x = 2

8 y = 2

9 num1 = eval("

x+y")10

print('

num1

',num1)

11 num2 =eval("

x+y"

,globals())

12print('

num2

',num2)

13 num3 = eval("

x+y"

,globals(),locals())

14print('

num3

',num3)

1516 g()

1 num 2

2 num1 4

3 num2 2

4 num3 4

解析:num2 因為有globals所以是全域性變數,執行後結果為4;num3 既有globals 又有locals,僅在此情況下,優先採用locals的值,故計算結果是2

二、eval 可以把 list, tuple, dict 轉換成str,返回來也成立;即互轉。

1

###############2#

字串轉成列表

3 s = '

[[1,2,],[3,4,],[5,6,],[8,9]]

'4 li =eval(s)

5print

(li)

6print

(type(s))

7print(type(li))

1 [[1, 2], [3, 4], [5, 6], [8, 9]]

2'str

'>

3'list

'>

1

########################2#

字串轉成字典

3 s = "

"4 dic =eval(s)

5print

(dic)

6print

(type(s))

7print(type(dic))

1 

2'str

'>

3'dict

'>

1

###########################2#

字串轉成元組

3 s = '

([1,2,],(3,4,),[5,6,],(8,9))

'4 tu =eval(s)

5print

(tu)

6print

(type(s))

7print(type(tu))

1 ([1, 2], (3, 4), [5, 6], (8, 9))

2'str

'>

3'tuple

'>

十 python沉澱之路 高階函式初識

一 高階函式 分兩種 一種是返回值中包含函式體 另一種是把乙個函式體當作了引數傳給了另乙個函式 1 返回值中包含函式體 例1 1 deftest 2print 這是乙個測試 3return test 45 f test 6 f 1 這是乙個測試 2 這是乙個測試 例21 definward 2pri...

十七 python沉澱之路 三元表示式 列表解析

一 三元表示式 1 a 騎車 23 res 好天氣 if a 騎車 else 睡覺 4print res 1 睡覺 解析 res 好天氣 if a 騎車 else 睡覺 將乙個句子分了三部分。簡單的邏輯運算可用這種三元表示式 二 列表解析 1 gift list 2for i in range 10...

學習Python 十五

學習位址 前面工作許多事情耽誤了繼續學習python,都去學習其他知識了,現在重新撿起 程序池import multiprocessing as mul def f x return x 2 pool mul.pool 5 rel pool.map f,1,2,3,4,5,6,7,8,9,10 pr...