2013-05-28 49 views
2

內Python運行時環境,請嘗試以下操作:01208在python中有特殊含義還是python2.6.2的一個bug?

>> *type(01207)* 

你會得到:

<type 'int'> 

然後嘗試:

>> *type(01208)* 

您將獲得:

File "<stdin>", line 1 
type(01208) 
     ^
+1

「type(08)」或「08」無效。 – dawg

+3

絕對是一個錯誤。但是,我擔心它在_your_代碼中。 –

+0

+1,因爲它認爲它可能有特殊的含義(相同的含義適用於許多其他語言)。它是[在文檔中](http://docs.python.org/2/reference/lexical_analysis.html#integer-and-long-integer-literals) –

回答

7

不,它不是一個錯誤,通過在0前面加上數字前綴來使用八進制數,8不是基於8的有效數字。

>>> 07 
7 
>>> 08 
SyntaxError: invalid token 
>>> 010 
8 

Python 3中使用0o前綴( - 你可以在2.7兩者都做),而不是消除這種不確定性。

+0

它是有意義的。和類型(0xg)得到相同的錯誤。 – Geoffrey

+0

以'0'爲前綴的八進制數字是傳統的,但是現今使用八進制的? – lhf

相關問題