这是我系统上安装的Python版本。
Python 2.7.14 |Anaconda, Inc.| (default, Oct 16 2017, 17:29:19)
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
不知何故,08,99在8,9不明白。但其他数字工作
>>> print(02)
2
>>> print(09)
File "<stdin>", line 1
print(09)
^
SyntaxError: invalid token
>>> print(08)
File "<stdin>", line 1
print(08)
^
SyntaxError: invalid token
>>> print(07)
7
不仅打印,而且datetime.date也会抛出SyntaxError
>>> import datetime
>>> datetime.date(2017,11,09)
File "<stdin>", line 1
datetime.date(2017,11,09)
^
SyntaxError: invalid token
>>> datetime.date(2017,11,04)
datetime.date(2017, 11, 4)
>>>
答案 0 :(得分:3)
Python 2.x上以0
开头(并且后面没有x
或b
)的整数文字是octal literals(为了将来的兼容性,{ {1}}前缀也表示八进制文字,它是Py3中唯一接受的形式,拒绝所有“普通”0o
前缀0
文字以避免人们混淆谁可能会尝试C八进制语法)。 Octal只有从0到7的数字,因此int
在八进制中是无意义的,9
显式请求它被解释为八进制,因此错误。
简而言之,请勿尝试使用前导09
填充int
文字。它改变了意义,而不仅仅是外观。