python值赋值错误(08,09什么不对)

时间:2016-03-02 12:30:57

标签: python

在尝试为变量赋值时,我观察到了这种奇特的行为。有什么可能的解释?

>>> 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。

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。

删除前导零,即使它们确实使您的源代码看起来很漂亮。