为什么Python中的08或09无效?

时间:2014-10-17 11:22:47

标签: python python-2.7

在Python解释器中,0809似乎无效。例如:

>>> 01
1
>>> 02
2
>>> 03
3
>>> 04
4
>>> 05
5
>>> 06
6
>>> 07
7
>>> 08
  File "<stdin>", line 1
    08
     ^
SyntaxError: invalid token
>>> 09
  File "<stdin>", line 1
    09
     ^
SyntaxError: invalid token

正如您所看到的,只有0809似乎无法正常工作。这些特殊值是什么?

3 个答案:

答案 0 :(得分:12)

具有前导零的数字被解释为八进制文字。所以8和9在八进制中是无效的。只有数字0到7才有效。

尝试翻译:

>>> 011
9
>>> 012
10
>>> 013
11

答案 1 :(得分:2)

如果数字以0开头,则表示它是八进制数字:

>>> 010
8

答案 2 :(得分:0)

在Python(以及许多其他C源语言)中,前导0(以及越来越多的前导0O)表示该数字是八进制,而不是十进制。有关详细信息,请参阅https://docs.python.org/2/reference/lexical_analysis.html#integer-and-long-integer-literals

例如,对于踢球,请参阅010评估的内容。