为什么这 i = (a += 2) 在 Python 中给出 SyntaxError?

djk*_*jkp -4 python python-3.x

我正在尝试exec('global expression_result; expression_result = %s' % "a += 2")在 python 中执行。

它正在给我SyntaxError。我已经声明了变量a and expression_result

在 ipython 中,我也尝试过 i = (a += 2) 这也给出了SyntaxError

如何评估这些类型的表达式并得到结果?

DYZ*_*DYZ 8

首先,你不应该使用execor eval。几乎不需要这些功能中的任何一个。

其次,赋值(例如,a+=2不是Python 中的表达式(与 C、C++ 或 Java 不同)。它没有值,不能打印或进一步分配。根据其他评论者的建议,您可以将代码拆分为两个任务:

a += 2
i = a
Run Code Online (Sandbox Code Playgroud)


Boe*_*dal 6

你不能用+=标志做到这一点。

但是如果你写得完整,它就可以工作。

i = a = a + 2
Run Code Online (Sandbox Code Playgroud)

所以 dropi = a += 2这基本上是i = a = a + 2