在Python中以0开头的数字是什么意思?

发布于 2021-02-02 23:19:01

当我在python中输入前面带有0的小整数时,它们给出了奇怪的结果。为什么是这样?

>>> 011
9
>>> 0100
64
>>> 027
23

注意:Python版本2.7.3我已经在Python 3.0中进行了测试,显然现在这是一个错误。因此,这是特定于版本的。

编辑:它们显然仍然是整数:

>>> type(027)
`<type 'int'>`
关注者
0
被浏览
104
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    这些是以8为底的数字(八进制数字)。一些例子:

    Python 2(旧格式)
    注意:这些形式仅适用于Python2.x

    011等于 1*(8^1) + 1*(8^0)= 9

    0100等于1*(8^2) + 0*(8^1) + 0*(8^0)= 64

    027等于 2*(8^1) + 7*(8^0)= 16 + 7 = 23

    Python 3(新格式)

    在Python 3中,必须使用0o而不是仅仅0表示一个八进制常量,例如0o11或0o27,等等。Python 2.x版本> = 2.6支持新格式和旧格式。

    0o11等于 1*(8^1) + 1*(8^0)= 9

    0o100等于1*(8^2) + 0*(8^1) + 0*(8^0)= 64

    0o27等于 2*(8^1) + 7*(8^0)= 16 + 7 = 23



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看