日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python 2 到 3 系列】 print 是函数

發布時間:2025/3/13 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python 2 到 3 系列】 print 是函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
v3.0 以前,print一直作為語法結構存在,他是python語法的一部分;這個理解起來可能有點蹩腳,但的確是這樣。
print 一直被定以為一個statement,也就是說,他跟return/try/while等等語法結構沒有概念上的區別,都必須在編譯階段解析并產生對應的op流。


statement 是由 expression組成的,expression可以包含expression,但不能包含statement。
所以,如下代碼產生了語法錯誤:
====================
>>> # python 2.7
>>> a = print 1
? File "<stdin>", line 1
? ? a = print 1
? ? ? ? ? ? ^
SyntaxError: invalid syntax
====================


v3.0 以后,print statement被取消,定義了一個內建函數print()。
現在,print的函數形態會令我們比較舒服,它看起來更像一個用戶于程序交互的功能函數,而不是怪異的語法結構。
雖然,print()函數不返回任何東西,雖然試圖獲取print()的返回值看起來很怪異,但它可以說明,print(1)是一個函數調用的expression,而不是print statement。
====================
>>> # python 3.2
>>> a = print(1)
1
>>> type(a)
<class 'NoneType'>
====================
并且,顯然的,a得到了一個返回值,返回值是空。


這不同于我們試圖訪問一個未初始化的變量,如下面的例子。
====================
>>> # python 3.2
>>> type(b)
Traceback (most recent call last):
? File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined
====================


結論:
在v3.x里,以函數形態存在的print()必須用括號包裹參數列才能編譯通過,它的使用可以出現在任何函數可以出現的地方,需要考慮的只有返回值是否有意義。
在v2.x里,print作為statement,可以使用帶括號也可以不帶括號使用,但決不能存在于expression里。

轉載于:https://www.cnblogs.com/lanqiu5ge/p/9472243.html

總結

以上是生活随笔為你收集整理的【Python 2 到 3 系列】 print 是函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。