当我在python中输入前面带有0的小整数时,它们给出了奇怪的结果。为什么是这样?
>>> 011
9
>>> 0100
64
>>> 027
23
我正在使用Python 2.7.3。我已经在Python 3.0中进行了测试,显然现在这是一个错误。因此,这是特定于版本的。
它们显然仍然是整数:
>>> type(027)
<type 'int'>
这些是以8为底的数字(八进制数字)。一些例子:
注意:这些形式仅适用于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中,必须使用0o
而不是仅仅0
表示一个八进制常量,例如0o11
或0o27
。等等。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] 删除。
我来说两句