如果... else语句,非常简单的Python上的语法无效

时间:2013-01-14 21:38:09

标签: python python-3.x

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

7 个答案:

答案 0 :(得分:8)

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

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

在python中pass相当于其他语言(如C)中使用的{}

答案 1 :(得分:6)

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

例如,

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

或者是空方法:

def doNothing():
    pass

答案 2 :(得分:4)

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

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

答案 3 :(得分:2)

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

<强> e.g。

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

答案 4 :(得分:0)

Click to open image

问题只是缩进。

您正在使用IDLE。当你在第一个print语句后按Enter键时,else的indent与print默认相同,这是不行的。你需要开始其他句子并按回一次。请查看附图中的含义。

答案 5 :(得分:0)

这是一个明显的错误,当我们在if语句之后按Enter键进入该意图时,尝试将if语句保持为直接与if语句。这是一个常见的印刷错误

答案 6 :(得分:0)

其他需要垂直对齐。标识在Python中起着关键作用。使用else时出现相同的语法错误。确保您正确缩进代码