我想了解为什么Python 3.5.1有时会引发IndentationError
,有时会引发SyntaxError
,因为我希望它在两种情况下都抛出IndentationError
。例如:
1)
>>> if True:
... pass
... else:
File "<stdin>", line 3
else:
^
IndentationError: unexpected indent
2)
>>> if True:
... pass
... else:
File "<stdin>", line 3
else:
^
SyntaxError: invalid syntax
答案 0 :(得分:5)
IndentationError
是因为该行缩进的次数超过了应有的数量。 pass
并不要求下一行缩进。
SyntaxError
是因为,虽然具有else
语句的行理论上可以适当地缩进,如果它有其他语句,如pass
或while
,则解释器无法&在该缩进级别找到必要的先前声明(if
,elif
,while
,for
或except
)。