[英]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.