1

为什么当我将带有前导零的整数存储到变量中时,Python 的行为会很奇怪?一个给出错误,而另一个错误地存储值?

>>> zipcode = 02492
SyntaxError: invalid token

>>> zipcode = 02132
>>> zipcode
1114
4

2 回答 2

5

以 0 开头的数字被解释为八进制数

In [32]: oct(1114)
Out[32]: '02132'

In [33]: int('2132', 8)
Out[33]: 1114

In [34]: 02132 == 1114
Out[34]: True

请注意,在 Python3 中,八进制文字必须用前导0oor指定0O,而不是0.

于 2013-09-22T20:45:23.610 回答
3

int前导零的文字被解释为八进制,其中9不是有效数字。只有由范围内的数字组成的数字[0, 7]才是有效的八进制数。

于 2013-09-22T20:45:48.237 回答