eval() 函數(shù)十分強(qiáng)大 —— 將字符串 當(dāng)成 有效的表達(dá)式 來求值 并 返回計(jì)算結(jié)果
基本的數(shù)學(xué)計(jì)算
In [1]: eval("1 + 1")
Out[1]: 2
字符串重復(fù)
In [2]: eval("'*' * 10")
Out[2]: '**********'
將字符串轉(zhuǎn)換成列表
In [3]: type(eval("[1, 2, 3, 4, 5]"))
Out[3]: list
將字符串轉(zhuǎn)換成字典
In [4]: type(eval("{'name': 'xiaoming', 'age': 18}"))
Out[4]: dict
案例 - 計(jì)算器
需求
提示用戶輸入一個(gè) 加減乘除混合運(yùn)算
返回計(jì)算結(jié)果
input_str = input("請輸入一個(gè)算術(shù)題:")
print(eval(input_str))
不要濫用 eval
在開發(fā)時(shí)千萬不要使用 eval 直接轉(zhuǎn)換 input 的結(jié)果
import('os').system('ls')
等價(jià)代碼
import os
os.system("終端命令")
執(zhí)行成功,返回 0
執(zhí)行失敗,返回錯(cuò)誤信息