一、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 = 12 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 22 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))
12'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...