6

有人可以解释为什么我在制定这个简单的 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
>>>
4

7 回答 7

9

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

例如,

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

或者一个空方法:

def doNothing():
    pass
于 2013-01-14T21:47:01.517 回答
8

那是因为你的else部分是空的,也没有正确缩进if.

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

在 pythonpass中等同于{}在其他语言中使用,例如 C。

于 2013-01-14T21:40:52.097 回答
4

else块需要与以下缩进级别相同if

if 3 > 0:
    print('3 greater then 0')
else:
    print('3 less than or equal to 0')
于 2013-01-14T21:41:10.847 回答
4

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

例如

a = 2
if a == 2:
    print "a=%d", % a
else:
    print "mismatched"
于 2013-07-22T05:59:19.580 回答
1

点击打开图片

问题只是缩进。

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

于 2016-04-18T18:22:40.173 回答
0

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

于 2017-01-25T15:40:34.467 回答
0

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

于 2019-03-03T05:19:02.267 回答