2013-10-15 38 views
3

我有一個簡單的問題,IndentationError是Python中的語法錯誤還是不是?

IndentationError a SyntaxError在Python中還是不是?

我認爲這不是,但因爲我是初學者,所以我想確定一下。 語法錯誤僅僅是那些在解釋器中給我SyntaxError作爲迴應的錯誤嗎?例如,因此,如果有,如果我鍵入

3f = 22 

我得到

SyntaxError: invalid syntax 

別的東西(IndentationErro [R等),可以說,它是一個子類的SyntaxError與否?

回答

12
>>> issubclass(IndentationError, SyntaxError) 
True 

這意味着是

更多信息herehere

+0

謝謝!你的回答非常有幫助! – SomeOne

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