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中文网其他相关文章!