三歲和你用白話學編程,白話一堆,編程自會!
eval() 函數
eval() 函數是python的十分重要的一個函數
他的作用是用表達式的方式解析並執行字符串,輸出返回結果
>>> a = 1
>>>eval('a + 1')
>2
>>>eval('2.2 + 3.3')
>5.5
字符串都可以這樣計算,那麼計算器不是很簡單?
eval()書寫簡易計算器
>>> a = eval(input('輸入你要計算的公式'))
>>> print(a)
解析:
用input函數輸入需要計算的公式
同eval函數把字符串進行解析並運算
用print函數輸出
eval() 深度解析
eval(expression[, globals[, locals]])
實參是一個字符串,以及可選的 globals 和 locals 。 globals 實參必須是一個字典。locals 可以是任何映射對象。
白話時間:
第一個參數一定是字符串,第二個一定是字典,第三個都可以
講不清楚怎麼辦,上栗子
>>> a = 3
>>> b = 4
>>> eval('a + b')
>7
>>>print(eval("{'name':'python','age':age}",{"age":162}))
>{'name': 'python', 'age': 162}
>>>age=18
>>>print(eval("{'name':'linux','age':age}",{"age":1822},locals()))
>{'name': 'linux', 'age': 18}
理解理解
eval() 類型
就是把字符串裏面的內容轉換爲原有內容
>>> type(eval('5')) #整型
<class 'int'>
>>> type(eval('14.12')) # 浮點型
<class 'float'>
>>> type(eval('(14, 12)')) #元組
<class 'tuple'>
>>> type(eval("{'name':'python','age':'3.7.4'}"))
<class 'dict'> # 字典
>>> type(eval("['name','python','age','3.7.4']"))
<class 'list'> #數組
特別注意
>>> type(eval("name"))
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
type(eval("name"))
File "<string>", line 1, in <module>
NameError: name 'name' is not defined
如果字符串裏面的英文內容沒有被定義使用eval() 函數以後
裏面的內容變成了變量,但是沒有賦值就會報錯
這裏特別需要注意
三歲白話時間,今天就到這裏啦