有人可以解释为什么我在制定这个简单的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
>>>
答案 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)
问题只是缩进。
您正在使用IDLE。当你在第一个print语句后按Enter键时,else的indent与print默认相同,这是不行的。你需要开始其他句子并按回一次。请查看附图中的含义。
答案 5 :(得分:0)
这是一个明显的错误,当我们在if语句之后按Enter键进入该意图时,尝试将if语句保持为直接与if语句。这是一个常见的印刷错误
答案 6 :(得分:0)
其他需要垂直对齐。标识在Python中起着关键作用。使用else时出现相同的语法错误。确保您正确缩进代码