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

Mary-Kate Olsen
发布: 2024-11-21 03:34:26
原创
320 人浏览过

Why Does Python Interpret Numbers with Leading Zeros as Octal?

Python 带有前导零的奇怪行为

使用 Python 时,输入以 0 开头的小整数时可能会遇到意外结果。异常源于该语言以 8 为基数(称为八进制)解释这些数字的能力数字。

具体来说,Python 解释器将这些前导零视为八进制表示形式的指示。例如,整数 011 被解释为:

011 = 1⋅8¹ + 1⋅8⁰ = 9 (in octal)
登录后复制

这解释了为什么当您在 Python 解释器中键入“011”时返回值 9。

但是,此行为是版本-具体的。在 Python 3 中,必须使用“0o”前缀显式表示八进制常量。例如:

0o11 = 1⋅8¹ + 1⋅8⁰ = 9 (in octal)
登录后复制

在 Python 2.6 及更高版本中,支持旧的(前导 0)和新的(0o 前缀)格式。

总而言之,Python 中的前导零表示八进制数。在 Python 2 中,这些数字只能使用前导零来表示,而在 Python 3 中,需要“0o”前缀。

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

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