我正在练习一个代码,它有......
totals = {4:0, 5:0, 6:0, 7:0, 8:0}
for _ in range(1000):
decades = random.choice(4,5,6,7,8)
totals(decades) += 1
最后一行给出了上面提到的语法错误。
您提供的代码有很多无效语法,这是您删除错误后的代码:
import random
totals = {4:0, 5:0, 6:0, 7:0, 8:0}
for _ in range(1000):
decades = random.choice((4,5,6,7,8))
totals[decades] += 1
现在让我们了解您遇到的错误
SyntaxError: 'function call' is an illegal expression for augmented assignment
您在这一行遇到的错误
totals(decades) += 1
在这里我非常确定您想要增加与总计字典内的特定键相对应的值,正确的方法是totals[decades] += 1
。
但是,为什么你会收到语法错误?首先,如果我们从 Totals(decades) += 1 中删除赋值并简单地编写 print(totals(decades)) 这将给出一个错误
print(totals(decades))
TypeError: 'dict' object is not callable.
注意它是
Type Error
,这是程序执行期间发生的运行时错误。
但是你得到的错误是
Syntax Error
,因为Python已经禁止对临时对象进行增强赋值,所以当你使用临时对象时你不能对临时对象执行增强操作,它会抛出Syntax Error
。这是一个Syntax Error
意味着您正在尝试 totals(decades) += 1
修改临时对象。
a = 50
def foo():
return a
foo() += 1
foo() += 1
^
SyntaxError: 'function call' is an illegal expression for augmented assignment