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

8
在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 似乎无法正常工作。这些是特殊值吗?

2
这是八进制表示法。在SO上有几百个重复的问题,请在提问之前做一些搜索努力,我只是简单地谷歌了“python 08”,就从SO中得到了多个相关结果。 - l4mpi
它们是八进制的。https://dev59.com/DGgu5IYBdhLWcg3wDS4G - Graham Borland
3个回答

13

以 0 开头的数字将被解释为八进制字面量。因此8和9在八进制中是无效的,只有数字0到7有效。

在解释器中尝试:

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

2
如果一个数字以0开头,那么它就是一个八进制数:
>>> 010
8

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接