eval() 和 exec() 均用于把字符串当作表达式执行
eval 返回表达式执行结果
exec 无返回值
语法:
1 eval(string_code,globals=None,locals=None) 2 3 exec(string_code,globals=None,locals=None)
?:
1 x = 100 2 y = 200 3 z1 = x + y 4 z2 = eval('x + y') 5 print(z1,z2)
结果:
300 300
?:
1 x =100 2 y =100 3 z1 = x + y 4 z2 = exec('x + y') 5 z3 = exec('print("x + y =","x + y")') # 注意字符串是函数内全部内容都是字符串形式 6 # 错误写法:z = exec((print("x + y =","x + y"))) 7 z4 = eval('print("x + y =","x + y")') # 这种写法 失去了返回值 8 print(z1,z2,z3,z4)
结果:
x + y = x + y x + y = x + y 200 None None None