2010-08-02 31 views
2

如果您只需在>>>提示符後輸入一個整數,它們將在IDLE解釋器中提供給您,大多數情況下它只會將數字反彈回給您。IDLE以奇怪的方式處理數字輸入(python 2.6)

>>> 3 
3 
>>> 8 
8 
>>> 10 
10 

然後用0啓動nubmer,然後發生一些有趣的錯誤。

>>> 010 
8 
>>> 020 
16 

回答

11

在Python 2,一個整數文字從0​​開始被認爲是八進制,即,在基座8很顯然,10月10日== 12月8日(或一般地,在10基極b == B基10)。同樣,12十進制== 10十進制,依此類推。

+3

...並在Python 3中進行了更改:您必須在Python 2.6中引入八進制文字的「0o ...」形式,而不是(http://docs.python.org/release/2.6.5/ whatsnew/2.6.html#pep-3127-integer-literal-support-and-syntax) – 2010-08-02 07:22:44

+2

因此,老玩笑:問:爲什麼程序員在萬聖節慶祝聖誕節?答:因爲DEC 25 = OCT 31。 – 2010-08-02 08:31:01