2011-10-14 26 views
2

我剛剛注意到Python中不允許使用0填充,我想知道爲什麼選擇這個選項?爲什麼Python中不允許使用0填充?

例如:

a = 9 

確實

是如何形成的

a = 09 

不起作用?

非常感謝您的回答!

+1

可能的[Python:Invalid Token]重複(http://stackoverflow.com/questions/336181/python-invalid-token) – geoffspear

回答

8

與許多其他語言一樣,Python將以0開頭的數字視爲octal表示法。 09作爲八進制無效

請參閱chapter 2.4.4在Python語言參考中。

+4

也就是說,在Python 3中,八進制的nubers前面是0o而不是0 。 – glglgl

+0

謝謝!我懷疑在與同事聊天時,在提出這個問題之前完全忘記檢查:/ – ixM

2

這是因爲以0開頭的數字是八進制數字,八進制數字從0到7!

a = 07被完全接受,作爲一個八進制;所以a = 061會導致a包含49

3

要展開什麼@nos說:

>>> a = 01 
>>> a 
1 
>>> a = 07 
>>> a 
7 
>>> a = 010 
>>> a 
8 
>>> a = 08 
    File "<stdin>", line 1 
    a = 08 
     ^
SyntaxError: invalid token 

所以,a = 010是八進制10,這是十進制的8八隻知道數字0到7。使這就是爲什麼這是不可能的。

相關問題