在尝试为变量赋值时,我观察到了这种奇特的行为。有什么可能的解释?
>>> a = 01
>>> a = 02
>>> a = 03
>>> a = 04
>>> a = 05
>>> a = 06
>>> a = 07
>>> a = 08
File "<stdin>", line 1
a = 08
^
SyntaxError: invalid token
>>> a = 09
File "<stdin>", line 1
a = 09
^
SyntaxError: invalid token
我使用的是python 2.7.6,gcc 4.8.2。
答案 0 :(得分:4)
08
octal小数为10
。写010
。
01 == 1
02 == 2
# ...
07 == 7
010 == 8
011 == 9
012 == 10
# ...
017 == 15
020 == 16
答案 1 :(得分:2)
以0开头的数字是八进制文字。
8是一个无效的八进制数字,所以08没有意义。同上09。
删除前导零,即使它们确实使您的源代码看起来很漂亮。