有没有人为什么python以这种方式处理下面的事情。
>>> a = 099
File "<stdin>", line 1
a = 099
^
SyntaxError: invalid token
>>> a = 088
File "<stdin>", line 1
a = 088
^
SyntaxError: invalid token
>>> a = 0559
File "<stdin>", line 1
a = 0559
^
SyntaxError: invalid token
>>> a = 077
>>>
它似乎不接受以0开头并且以8或9开头的数字。如果是其他数字,则不会抛出任何错误。那是为什么?
答案 0 :(得分:2)
在Python 2中,与C一样,以0
开头的整数文字位于 octal 中。八进制中不存在数字8和9(它们分别写为010
和011
),因此这是语法错误。
>>> 010
8
>>> 08
File "<stdin>", line 1
008
^
SyntaxError: invalid token
在Python 3中,没有多少人知道的这个功能已经消失。在那里,以0
开头的非零文字是语法错误。