在Python中,使用"+="会导致语法错误。

3
n = 1
p = 4
print n += p

给我:

File "p7.py", line 17

print n += p

SyntaxError: invalid syntax

这个问题怎么解决?

弄明白了...有点儿。把打印语句去掉就可以工作了。我不明白这里的规则,为什么加上打印语句会出错,但我会继续查找。 - jason
4
"我不理解这里的规则",你在哪里看到过类似的代码?你正在使用哪个教程?你正在学习Python的哪个方面?这个例子是非常错误的。你在哪里看到这样的代码?" - S.Lott
6个回答

24
在Python中,n += p 是一个语句而不是一个可以打印值的表达式。这与其他一些语言(例如Ruby)不同,那里的所有东西都是表达式。
你需要执行:
n += p
print n

7

赋值,包括“增量”赋值(x op = expr作为x = x op expr的快捷方式),是语句而不是表达式。因此它不会产生任何值。你不能打印一个没有结果的东西 - 但这就是你告诉Python要做的事情:“评估n += p,然后打印其结果。”

如果你想修改n并打印新的n,请在两行上完成。如果你只想打印np的总和而不修改任何一个变量,请使用+而不是+=


5

你需要将其分成单独的行:

n = 1
p = 4
n += p
print n

4

n += p 等同于 n = n + p。这是一个语句本身,无法被打印出来。你可能想要使用 print n + p

编辑

我弄明白了... 有点儿。去掉 print 语句就可以运行了。我不理解这里的规则,为什么加了 print 就会出错,但我会继续研究。

严肃地建议你购买一本 Python 的书籍来学习。显然(并非冒犯之意,只是提醒)你不知道自己在做什么。


1
吹毛求疵:它并不完全等同。对象可以重载它以进行原地修改(例如,列表)。 - user395760
delnan:没错,但这与问题无关。这也会让提问者感到困惑,因为他的技能水平是从问题中估算出来的。 - orlp

1

+= 是一个语句。请将其单独放在一行上。


0
虽然在一般情况下 += 可以在 Python 中使用,但在这个地方语法上不被允许,所以请尝试:
n = 1
p = 4
n += p
print n

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接