首页 > 后端开发 > Python教程 > 为什么 Python 2.x 将带前导零的数字解释为八进制?

为什么 Python 2.x 将带前导零的数字解释为八进制?

Patricia Arquette
发布: 2024-11-26 12:08:09
原创
611 人浏览过

Why Does Python 2.x Interpret Numbers with Leading Zeros as Octal?

解码 Python 中神秘的“0”前导数字

当您在 Python 2.7.3 中输入带有前导零的小整数时,它们会产生意想不到的结果,例如:

>>> 011
9
>>> 0100
64
>>> 027
23
登录后复制

这个怪癖源于Python的方式解释以“0”为前缀的数字。在 Python 2.x 中,这些数字被视为八进制(以 8 为基数)整数。

揭开八进制数

在八进制数字系统中,每个数字代表 的幂8. 例如:

  • 011 代表 1 x 8^ 1 x 8⁰ = 9
  • 0100 代表 1 x 8² 0 x 8¹ 0 x 8⁰ = 64
  • 027 代表 2 x 8¹ 7 x 8⁰ = 16 7 = 23

Python 3现代方法

与 Python 2.7.3 不同,Python 3.0 不会将前导“0”的数字识别为八进制整数,而是会引发错误。要在 Python 3 中表示八进制数,必须使用“0o”前缀,例如:

>>> 0o11
9
>>> 0o100
64
>>> 0o27
23
登录后复制

Python 2.x 中的旧版支持

Python 2。 x 版本 >= 2.6 支持八进制的旧格式(前导“0”)和新格式(前导“0o”)数字,提供向后兼容性。

以上是为什么 Python 2.x 将带前导零的数字解释为八进制?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板