eval() 函數十分強大 ---- 將字符串 當成 有效的表達式 來求職 并 返回計算結果
1 # 基本的數學計算 2 print(eval("1 + 1")) # 2 3 4 # 字符串重復 5 print(eval("'*' * 5")) # ***** 6 7 # 將字符串轉換成列表 8 print(eval("[1, 2, 3, 4]")) # [1, 2, 3, 4] 9 10 # 等等...
案例 -- 計數器
需求
- 提示用戶輸入一個 加減乘除混合運算
- 返回計算結果
input_str = input("請輸入算術題: ")print(eval(input_str))
不要濫用 eval
在開發時千萬不要使用 eval 直接轉換 input 的結果
__import__('os').system('ls')
等價于
import osos.system("終端命令")
意思是可以通過輸入的內容, 對服務器文件增刪查改, 操作本地的文件, 很危險
?