[英]Python 2.7 print statement “SyntaxError: invalid syntax”
[英]Why python print(09) give SyntaxError: invalid token but not print(07)?
这是我的系统上安装的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、09在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)
>>>
Python 2.x上以0
开头(且不跟x
或b
)的整数文字是八进制文字 (为了将来的兼容性, 0o
前缀也表示八进制文字,它是Py3中唯一接受的形式,该形式拒绝所有 “普通” 0
前缀为int
文字,以避免可能尝试C八进制语法的人感到困惑。 八进制只有0到7之间的数字,因此9
在八进制中是无意义的,而09
明确要求将其解释为八进制,因此是错误。
简而言之,不要试图以0
开头填充int
常量。 它改变了含义,而不仅仅是外观。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.