为什么在Python中08或09无效?
在Python的解释器中,08
和09
看起来是无效的。举个例子:
>>> 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
正如你所看到的,只有08
和09
似乎不太管用。这是特殊的值吗,还是其他什么原因呢?
3 个回答
0
在Python(还有很多其他源自C语言的编程语言)中,数字前面加个0(还有越来越多的情况下加个0O)表示这个数字是八进制的,而不是十进制的。想了解更多细节,可以查看这个链接:https://docs.python.org/2/reference/lexical_analysis.html#integer-and-long-integer-literals。
举个例子,看看010这个数字会被计算成什么。
2
如果一个数字以0开头,那就意味着它是一个八进制数:
>>> 010
8
13
以零开头的数字会被当作八进制数来理解。所以在八进制中,8和9是不合法的。只有数字0到7是有效的。
可以在解释器中试试:
>>> 011
9
>>> 012
10
>>> 013
11