IDLE以奇怪的方式处理数字输入(python 2.6)

A-C*_*han 2 python syntax

如果你只是在>>>提示后输入一个整数,他们会在IDLE解释器中给你,大部分时间它只是简单地将数字反弹给你.

>>> 3
3
>>> 8
8
>>> 10
10
Run Code Online (Sandbox Code Playgroud)

然而,用0开始关闭nubmer,并发生一些有趣的错误.

>>> 010
8
>>> 020
16
Run Code Online (Sandbox Code Playgroud)

小智 11

在Python 2中,从0开始的整数文字被认为是八进制,即在基数8中.显然,10 oct == 8 dec(或者一般来说,10基数b == b基数10).同样,12 oct == 10 dec,依此类推.

  • ...并在Python 3中进行了更改:您必须使用Python 0中引入的八进制文字的"0o ..."形式(http://docs.python.org/release/2.6.5/whatsnew/2.6的.html#PEP-3127整数字面支持和语法) (3认同)
  • 因此,老笑话:问:为什么程序员在万圣节庆祝圣诞节?A.因为DEC 25 = OCT 31. (2认同)