为什么做01,02,..07 在 python 解释器中解析为整数,但 08 和 09 抛出 SyntaxError


$ python -V
Python 2.7.10
$ uname -a
Darwin Carters-MacBook-Pro-2.local 18.0.0 Darwin Kernel Version 18.0.0: Wed Aug 22 20:13:40 PDT 2018; root:xnu-4903.201.2~1/RELEASE_X86_64 x86_64

我今天试图在python解释器中做这样的事情

datetime.datetime(2019, 07, 26) - datetime.datetime.today()

这工作正常,但是当我去

datetime.datetime(2019, 08, 26) - datetime.datetime.today()

它抛出"语法错误:无效令牌">

然后我试了这个

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

这是怎么回事?

这是因为在python 2中,前导零表示该数字是八进制数,因此在八进制中我们没有8,它会产生此错误。

注意:Python3 不允许使用前导零

最新更新