目錄
eval()函數(shù)
eval() 函數(shù)用來執(zhí)行一個(gè)字符串表達(dá)式,并返回表達(dá)式得值。
語法
eval(expression[, globals[, locals]])
expression – 表達(dá)式。
globals – 變量作用域,全局命名空間,如果被提供,則必須是一個(gè)字典對(duì)象。
locals–變量作用域,局部命名空間,如果被提供,可以是任何映射對(duì)象。返回值:返回表達(dá)式計(jì)算結(jié)果。
實(shí)例
我們?cè)趶逆I盤輸入數(shù)據(jù)時(shí),Python接收得是字符串類型,這時(shí)我們可以使用eval()函數(shù),將輸入得數(shù)據(jù)進(jìn)行還原
實(shí)例1
n = input()m = eval(input())# type()函數(shù)可以用來檢測數(shù)據(jù)類型print(type(n))print(type(m))#利用eval()將字符串類型轉(zhuǎn)為整形print(type(eval(n)))
輸出結(jié)果:
使用eval()函數(shù),將字符串還原為數(shù)字類型,和int()函數(shù)得作用類似
實(shí)例2
# 輸入[1,2,3,4]m = input() # 得到一個(gè)字符串n = eval(input()) # 得到一個(gè)列表print(type(m))print(type(n))print(type(n[0]))
輸出結(jié)果
將輸入得字符串轉(zhuǎn)為對(duì)應(yīng)得數(shù)據(jù)類型,列表、元組等數(shù)據(jù)類型都可以使用這種方式輸入
實(shí)例3
# 表達(dá)式s1 = '3*7's2 = 'pow(2,3)'n = eval(s1)m = eval(s2)print(n, m)
輸出結(jié)果:
對(duì)表達(dá)式得結(jié)果進(jìn)行計(jì)算,返回計(jì)算后得值
附:使用例子
舉一個(gè)代碼隨想錄里一個(gè)解答得例子:
second_num = 1item = + first_num = 2int(eval(f'{second_num} {item} {first_num}')) # 等價(jià)于本1 + 2
其中,格式化字符串常量(formatted string literals)是 Python 3.6 新引入得一種字符串格式化方法,主要目得是使格式化字符串得操作更加簡便。
f-string在形式上是以 f 或者 F 修飾符引領(lǐng)得字符串(f’xxx’ 或 F’xxx’),以大括號(hào) {} 標(biāo)明被替代得字段。
另一個(gè)例子:
# 創(chuàng)建my_dict = {'name':'Hider',? ? ? ? ? ?'age':'100'}print(f"My name is {my_dict['name']}, I'm {my_dict['age']}.")# My name is Hider, I'm 100.
總結(jié)
到此這篇關(guān)于Python中eval()函數(shù)使用得內(nèi)容就介紹到這了,更多相關(guān)Python eval()函數(shù)使用內(nèi)容請(qǐng)搜索之家以前得內(nèi)容或繼續(xù)瀏覽下面得相關(guān)內(nèi)容希望大家以后多多支持之家!