python中eval函數作用如下:
創新互聯公司-專業網站定制、快速模板網站建設、高性價比玉山網站開發、企業建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式玉山網站制作公司更省心,省錢,快速模板網站建設找我們,業務覆蓋玉山地區。費用合理售后完善,十余年實體公司更值得信賴。
1、計算字符串中有效的表達式,并返回結果。
2、將字符串轉成相應的對象(如list、tuple、dict和string之間的轉換)。
3、將利用反引號轉換的字符串再反轉回對象。
函數作用域:eval()函數并不會創建一個新的作用域,并且它的作用域就是它所在的作用域,有時候需要將eval()函數的作用域設置為全局,當然可以將eval()在全局作用域中使用,這個時候可以用window.eval()的方式實現。
參數情況:
(1)如果參數是一個表達式,eval() 函數將執行表達式。
(2)如果參數是Javascript語句,eval()將執行 Javascript 語句。
注意:如果執行結果是一個值就返回,不是就返回undefined,如果參數不是一個字符串,則直接返回該參數。
可以把list,tuple,dict和string相互轉化。
1、字符串轉換成列表
a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
type(a)
b = eval(a)
print b[[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]
type(b)
2、字符串轉換成字典
a = "{1: 'a', 2: 'b'}"
type(a)
b = eval(a)
print b{1: 'a', 2: 'b'}
type(b)
3、字符串轉換成元組
a = "([1,2], [3,4], [5,6], [7,8], (9,0))"
type(a)
b = eval(a)
print b([1, 2], [3, 4], [5, 6], [7, 8], (9, 0))
type(b)
4、eval()函數傳進去的參數必須是字符串或者是對象
示例1:
a=10;
print(eval("a+1"))
執行結果: 11
示例2:
a=10;
g={'a':4}
print(eval("a+1",g))
執行結果:5
示例3:
a=10
b=20
c=30
g={'a':6,'b':8}
t={'b':100,'c':10}
print(eval('a+b+c',g,t))
執行結果:116? (a=6, b=100, c=10)
5、eval函數,eval去除引號后會檢查到它是不是可計算的,如果可計算會將計算的結果打印出來,如果不可計算直接返回結果
示例1:不可計算》》》直接輸出結果
s='["a","b","c"]'
print(eval(s))
執行結果:?['a', 'b', 'c']
示例2:表達式可計算》》》計算之后輸出結果
s='abs(-10)'??
print(eval(s))
輸出結果:10?
5、eval()函數,功能是將string變成算術表達式來執行
示例1:
eval("1+2")
執行結果: 3
示例2:
eval("print(\"hello, world\")")
輸出結果:hello, world
以python 3.8.5150.0版本為例,python中eval函數作用如下:
1、計算字符串中有效的表達式,并返回結果。
2、將字符串轉成相應的對象(如list、tuple、dict和string之間的轉換)。
3、將利用反引號轉換的字符串再反轉回對象。
參數解析:
expression:這個參數是一個字符串,python會使用globals字典和locals字典作為全局和局部的命名空間,將expression當作一個python表達式進行解析和計算。
globals:這個參數控制的是一個全局的命名空間,也就是我們在計算表達式的時候可以使用全局的命名空間中的函數,如果這個參數被提供了。
并且沒有提供自定義的builtins(python的內建模塊),那么會將當前環境中的builtins拷貝到提供的globals里,然后進行計算。如果globals沒有被提供,則使用python的全局命名空間。
locals:這個參數控制的是一個局部的命名空間,和globals類似,不過當它和globals中有重復的部分時,locals里的定義會覆蓋掉globals中的,也就是說當globals和locals中有沖突的部分時,locals說了算,它有決定權,以它的為準。如果locals沒有被提供的話,則默認為globals。
網站題目:Python函數eval python函數eval作用
文章來源:http://m.kartarina.com/article36/hgchsg.html
成都網站建設公司_創新互聯,為您提供品牌網站設計、軟件開發、品牌網站制作、域名注冊、面包屑導航、網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯