我知道函数 eval 在没有引号的情况下执行字符串(在参数中(。所以我只是在尝试
x=eval("4*5") #this works
eval("x=4*5") #but this doesn't
请说出我错在哪里!
使用
exec('x=4*5')
eval 仅计算表达式而不计算赋值。
4*5
是一个表达式,它的值为20
。
x=4*5
不是表达式,也没有值。这是一个语句,意味着它执行一个操作。
eval()
将其字符串参数作为python表达式运行。它计算该表达式的值。它不能与赋值或其他不是表达式的语句一起使用。
eval
函数具有以下结构:
eval(expression, globals=None, locals=None)
表达式参数作为 Python 表达式进行分析和计算。它实际上是一个字符串表达式,而不是赋值。
参考: 这里