了解Python IndentationError和SyntaxError

时间:2016-05-23 09:42:51

标签: python python-3.x

我想了解为什么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

1 个答案:

答案 0 :(得分:5)

IndentationError是因为该行缩进的次数超过了应有的数量。 pass并不要求下一行缩进。

SyntaxError是因为,虽然具有else语句的行理论上可以适当地缩进,如果它有其他语句,如passwhile,则解释器无法&在该缩进级别找到必要的先前声明(ifelifwhileforexcept)。