3

我有一个简单的问题,

是否IndentationErrorSyntaxErrorPython 中?

我认为不是,但由于我是初学者,我想确定一下。语法错误只是那些SyntaxError在解释器中给我作为响应的错误吗?例如,如果我输入

3f = 22 

我明白了

SyntaxError: invalid syntax 

因此,如果还有其他东西(IndentationError 等),它可能是子类型SyntaxError吗?

4

2 回答 2

13
>>> issubclass(IndentationError, SyntaxError)
True

这意味着是

更多信息在这里这里

于 2013-10-15T07:30:37.180 回答
3

您的示例是 SyntaxError,因为您不能拥有以数字开头的标识符:

>>> 3f = 22
  File "<stdin>", line 1
    3f = 22
     ^
SyntaxError: invalid syntax


>>>     f3 = 22
  File "<stdin>", line 1
    f3 = 22
    ^
IndentationError: unexpected indent


>>> def test():
... f3 = 22
  File "<stdin>", line 2
    f3 = 22
     ^
IndentationError: expected an indented block

IndentationError 是一种 SyntaxError,方法解析顺序见:help(IndentationError) 和:http ://docs.python.org/2/library/exceptions.html#exceptions.IndentationError

有效标识符:

test
test3
test_3
__3Test_3______

无效的标识符:

3f
333
33__
# Using any symbol other than: _

也可以看看:

http://docs.python.org/2/reference/lexical_analysis.html#identifiers

于 2013-10-15T08:40:29.650 回答