如果我在打印后添加冒号,为什么解释器不抛出错误



我在打印后添加了冒号和分号,但解释器没有抛出错误。

请使用python3.8.x(编辑(运行

x=5
print:(x)
print;(x)

解释器认为冒号是一个类型注释。这就是为什么它在早期版本的Python中引发SyntaxError,但在Python 3.6+中是有效语法。

在Python的后续版本中,这是有效的

a: int

这个也是

import sys
def exclaim(string):
sys.stdout.write(f"{string}!")
print = exclaim
print("Hello")

也就是说,你可以注释变量的类型。您可以重新分配print

所以当你做CCD_ 3时,解释器只是认为你在把CCD_;类型";5

分号是有效的Python,用于将两个单独的语句放在同一行。他们只是被";unythonic";。你确实看到它们有时被用来做import pdb; pdb.set_trace()之类的事情

对于print;(x),解释器将其视为两个不同的语句,print(x)。口译员打印出"<内置功能打印>quot;以及";5〃;。打印功能是一个内置功能。x设置为5,所以它也打印出5。print:(x)是@Batman的答案中所说的类型注释

最新更新