1.关于eval函数
基础概念
介绍:将字符串作为Python表达式执行,并返回表达式的计算结果(这意味着,你可以将一个包含Python代码的字符串传递给eval()
,它会像直接执行那段代码一样处理这个字符串,计算出相应的值)
-
表达式解析与执行:
eval()
接受一个字符串参数,这个字符串应当构成一个有效的Python表达式。这包括了算术运算、变量引用、函数调用等各种表达式形式。函数执行时,会解析该字符串,计算其表达式的值,并返回这个值。eval()
函数如何解析并执行不同的表达式算术运算
expr = "3 + 5" result = eval(expr) print(result) # 输出: 8
变量引用
x = 10 expr = "x * 2" result = eval(expr) print(result) # 输出: 20
函数调用
def add(a, b): return a + b expr = "add(4, 5)" result = eval(expr) print(result) # 输出: 9
复合表达式
y = 20 expr = "(3 + 5) * y / 4" result = eval(expr) print(result) # 输出: 20.0
字典和列表解析
注意,
eval()
也能解析字面量结构,比如列表和字典,但出于安全考虑,对于复杂数据结构的解析,推荐使用ast.literal_eval()
。expr = "[i for i in range(3)]" # 列表推导式 result = eval(expr) print(result) # 输出: [0, 1, 2] expr = "{i:i**2 for i in range(3)}" # 字典推导式 result = eval(exp