Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python3.5.2中的eval(";a+;=b";)_Python 3.x - Fatal编程技术网

Python 3.x Python3.5.2中的eval(";a+;=b";)

Python 3.x Python3.5.2中的eval(";a+;=b";),python-3.x,Python 3.x,我正在运行为学习练习编写的一些代码,突然遇到了一个错误“SyntaxError:invalid syntax”,来自eval(“alist+=[foo]”。为了尝试理解,我制作了一个简单的模块: a = 5 eval("a += 1") print(a) 事实上,它给出了相同的错误,即使我只是直接在Python控制台中运行前两行代码。现在我只做了几天Python,所以我不是专家,但我99%确信这应该行得通a+=1有效执行(“a+=1”)起作用。但是eval(“a+=1”)没有,也没有eval(

我正在运行为学习练习编写的一些代码,突然遇到了一个错误“SyntaxError:invalid syntax”,来自
eval(“alist+=[foo]”
。为了尝试理解,我制作了一个简单的模块:

a = 5
eval("a += 1")
print(a)
事实上,它给出了相同的错误,即使我只是直接在Python控制台中运行前两行代码。现在我只做了几天Python,所以我不是专家,但我99%确信这应该行得通<代码>a+=1有效<代码>执行(“a+=1”)起作用。但是
eval(“a+=1”)
没有,也没有
eval(“a-=1”)


我做错什么了吗?
eval()
不应该有这个
+=
功能吗?其他人能做到这一点吗?我自己的Python有问题吗?我的设置真的很奇怪吗?

eval()的第一个参数必须是代码对象或表达式。Python中的赋值是一个语句。

感谢链接Celeo,但是那里有太多的信息,我发现几乎不可能找到我问题的明确答案。啊,这就是我需要的澄清——语句和表达式之间的区别,以及eval()需要的。我想这是个很愚蠢的问题。显然我想要exec()。