如何修复此SyntaxError?

时间:2014-04-13 21:06:51

标签: python python-2.7 python-3.x

在我的代码中,我有以下几行:

if numVotes == 0:
    avId in self.disconnectedAvIds or self.resultsStr += curStr

当我运行代码时出现此错误?

SyntaxError: illegal expression for augmented assignment

如何解决此错误?

2 个答案:

答案 0 :(得分:3)

作业

self.resultsStr += curStr

是一份声明。 Statements can not be part of expressions。因此,请使用if-statement

if avId not in self.disconnectedAvIds:
    self.resultsStr += curStr

Python禁止在表达式中进行赋值,因为它被认为经常会导致错误。例如,

if x = 0    # banned

太近了

if x == 0   # allowed

答案 1 :(得分:1)

avId in self.disconnectedAvIds将返回一个布尔值。 or用于评估两个布尔值,因此到目前为止它是正确的。

self.resultsStr += curStr是对变量的赋值。对变量的赋值的格式为lvalue = rvalue,其中lvalue是可以赋值的变量,rvalue是一个表达式,用于计算lvalue的数据类型。这不会返回布尔值,因此表达式是非法的。

如果要更改值if avId is in self.disconnectedAvIds,请使用if语句。

if avId in self.disconnectedAvIds:
    self.resultsStr += curStr