当我将带有前导零的整数存储到变量中时,为什么Python表现得很奇怪?一个错误,而另一个错误地存储值?
>>> zipcode = 02492
SyntaxError: invalid token
>>> zipcode = 02132
>>> zipcode
1114
答案 0 :(得分:5)
以0开头的数字被解释为octal numbers。
In [32]: oct(1114)
Out[32]: '02132'
In [33]: int('2132', 8)
Out[33]: 1114
In [34]: 02132 == 1114
Out[34]: True
请注意in Python3,八进制文字必须使用前导0o
或0O
指定,而不是0
。
答案 1 :(得分:3)
int
文字被解释为八进制,其中9
不是有效数字。只有在[0, 7]
范围内的数字形成的数字才是有效的八进制数。