表达式中间的增强赋值导致语法错误
在我的代码中,有这些行:
if numVotes == 0:
avId in self.disconnectedAvIds or self.resultsStr += curStr
当我运行代码时,出现了这个错误?
SyntaxError: illegal expression for augmented assignment
我该如何修复这个错误呢?
2 个回答
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
4
这个赋值
self.resultsStr += curStr
是一个语句。语句不能作为表达式的一部分。所以,应该使用一个if语句
:
if avId not in self.disconnectedAvIds:
self.resultsStr += curStr
Python 不允许在表达式中进行赋值,因为这样做容易出错。比如说,
if x = 0 # banned
这太接近于
if x == 0 # allowed