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

罗伯·沃尔格曼:

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

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

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

它们显然仍然是整数:

>>> type(027)
<type 'int'>
忘记:

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

Python 2(旧格式)

注意:这些形式仅适用于Python2.x。

011 等于1⋅8¹+1⋅8⁰= 9

0100 等于1⋅8²+0⋅8¹+0⋅8⁰= 64,

027 等于2⋅8¹+7⋅8⁰= 16 + 7 = 23

Python 3(新格式)

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

0o11 等于1⋅8¹+1⋅8⁰= 9

0o100 等于1⋅8²+0⋅8¹+0⋅8⁰= 64,

0o27 等于2⋅8¹+7⋅8⁰= 16 + 7 = 23

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章