【问题标题】:"+=" causing SyntaxError in Python"+=" 导致 Python 中的 SyntaxError
【发布时间】:2011-08-07 22:31:37
【问题描述】:
n = 1
p = 4
print n += p

给我:

File "p7.py", line 17

print n += p

SyntaxError: invalid syntax

如何解决这个问题?

【问题讨论】:

  • 想通了...有点。取出打印语句使其工作。我不明白这里的规则,为什么它会与打印中断,但我会继续寻找。
  • “我不明白这里的规则”?你在哪里见过这样的代码?你用的是什么教程?你在哪里学习 Python?这是一个严重错误的例子。你在哪里看到过这样的代码?

标签: python syntax-error augmented-assignment


【解决方案1】:

n += p 等于 n = n + p。这是一个单独的声明,不能打印出来。你的意思可能是print n + p

编辑

想通了……有点。取出打印语句使其工作。我不明白这里的规则,为什么它会与打印中断,但我会继续寻找

我会认真建议买一本关于 Python 的书并从中学习。你显然(不是侮辱,只是通知你)不知道你在做什么。

【讨论】:

  • 吹毛求疵:这并不完全等同。对象可以重载它以进行就地修改(例如列表)。
  • delnan:是的,但对于这个问题来说是题外话。这也会使提问者感到困惑,因为他的技能水平与问题相近。
【解决方案2】:

n += p 是 Python 中的语句,而不是返回可以打印的值的表达式。这与其他几种语言不同,例如 Ruby,其中 everything 是一个表达式。

你需要做的

n += p
print n

【讨论】:

    【解决方案3】:

    赋值,包括“增强”赋值(x op= exprx = x op expr 的缩写)是一个语句,而不是表达式。所以它不会产生一个值。您无法打印不会产生任何结果的结果 - 但这就是您告诉 Python 要做的事情:“评估 n += p,然后打印结果。”

    如果您想修改 n 并打印新的 n,请在两行中执行此操作。如果您只想打印np 的总和而不修改任何一个,请使用+ 而不是+=

    【讨论】:

      【解决方案4】:

      虽然+= 通常是合法的 Python,但目前在语法上是不允许的,所以尝试一下:

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

      【讨论】:

        【解决方案5】:

        你需要把它分成不同的行:

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

        【讨论】:

          【解决方案6】:

          += 是一个声明。将它单独放在一条线上。

          【讨论】:

            猜你喜欢
            • 2019-04-14
            • 2016-06-06
            • 2021-10-31
            • 2020-06-11
            • 1970-01-01
            • 2011-02-05
            相关资源
            最近更新 更多