【问题标题】:Invalid syntax on VERY SIMPLE Python if ... else statement非常简单的 Python 上的无效语法 if ... else 语句
【发布时间】:2023-12-01 12:08:01
【问题描述】:

有人可以解释为什么我在编写这个简单的 if...else 语句时从 Python 的解释器中得到一个无效的语法错误吗?我自己不添加任何选项卡,我只是输入文本,然后在输入后按 Enter。当我在“else:”之后输入回车时,我得到了错误。解释器突出显示“Else”。怎么了?

Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:55:48)
[MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.

>>> if 3 > 0:
        print("3 greater than 0")
        else:

SyntaxError: invalid syntax
>>>

【问题讨论】:

  • 尝试删除else:之前的缩进
  • else 的缩进量必须与 if 相同。
  • @PinnyM 谢谢,解决了。我无法弄清楚如何在交互模式下删除缩进。在 Python shell 中编写代码时,您必须在按 [enter] 后按退格键,但在编写“else:”语句之前;您不能像在其他编辑器中那样使用 shift+[tab] 来修复缩进。
  • @VaughnCato 谢谢你的澄清。
  • if 可以有另一个缩进的ifelse 需要父母 if

标签: python python-3.x


【解决方案1】:

与许多其他语言不同,Python 不允许空块(因为它不使用大括号来指示块)。 pass 关键字必须在您想要有一个空块的任何时候使用(包括在 if/else 语句和方法中)。

例如,

if 3 > 0:
    print('3 greater then 0')
else:
    pass

或者一个空方法:

def doNothing():
    pass

【讨论】:

  • 请注意(对于未来的访问者)这并不总是缩进错误。我曾经有一次忘记了“)”这一行。
【解决方案2】:

那是因为您的 else 部分是空的,并且没有正确缩进 if

if 3 > 0:
    print "voila"
else:    
    pass

在 python 中,pass 等价于在 C 等其他语言中使用的{}

【讨论】:

    【解决方案3】:

    else 块需要与if 处于同一缩进级别:

    if 3 > 0:
        print('3 greater then 0')
    else:
        print('3 less than or equal to 0')
    

    【讨论】:

    • @DanielJ。因为这是 Python。
    【解决方案4】:

    关键字else必须相对于if语句分别缩进

    例如

    a = 2
    if a == 2:
        print "a=%d", % a
    else:
        print "mismatched"
    

    【讨论】:

    • @DanielJ。因为这是 Python。
    【解决方案5】:

    问题只是缩进。

    您正在使用 IDLE。当你在第一个打印语句后按回车时,else 的缩进默认与打印相同,这是不正确的。您需要转到 else 语句的开头并按回一次。检查所附图片我的意思。

    【讨论】:

      【解决方案6】:

      这是一个明显的错误,当我们在 if 语句后按 enter 时,它会进入那个意图,尝试让 else 语句与 if 语句保持一致。这是一个常见的印刷错误

      【讨论】:

      • 我发现这条评论很有用,因为它让我了解了 Python 程序员通常处理的内容。
      • 我认为这条评论很有帮助,因为它表明经常使用 Python 编程的人会遇到这个简单的缩进问题。我想指出的是,在交互式编辑器中,与大多数其他 IDE 和文本处理器不同,您必须在 if 语句后面的语句之后按 [Enter] 才能到达要放入“else:”的行,然后您必须按 [Backspace] 键才能转到与“if”语句相同的缩进,然后键入“else:”。在其他编辑器中,您可以输入“else:”,然后输入 [Shift]+[Tab] 来修复缩进。
      【解决方案7】:

      否则需要垂直对齐。识别在 Python 中发挥着关键作用。我在使用 else 时遇到了相同的语法错误。确保正确缩进代码

      【讨论】:

      • 我觉得这个简单的问题已经很好回答了,为什么不跳过这个呢?
      最近更新 更多