【python小技巧1】一文講盡print函數(shù)

print在3.x中是一個內置函數(shù),不需要導入模塊。大概率是新手學python接觸的第一個函數(shù)。(畢竟要 "Hello World!")
注意:本文不再討論現(xiàn)在差不多過時的python2.x
一、定義
先看函數(shù)的定義:
沒錯,builtins里只有定義,沒有實現(xiàn),因為那是更底層的事情,你懂的。
再看看存根:
很明顯:
print可以接受任意個數(shù)的“位置參數(shù)”,甚至是0個。
最多可以接受sep、end、file、flush共4個“關鍵字參數(shù)”。
print函數(shù)返回值永遠是None。
二、參數(shù)
位置參數(shù)
????這個 *objects 表示把所有位置參數(shù)都“吸入”變量 objects 中,而 objects 是一個元組。可以是任意對象。
關鍵字參數(shù)
sep(sep->separator->分隔符):表示用什么字符串來間隔 objects 中的元素。默認為一個空格 ' ' 。必須為Optional[str]
end:表示用什么字符結束輸出。默認為一個換行符 '\n' 。如果你想輸出完不換行,你可以指定 end=''?。必須為Optional[str]。如果調用 print() 將輸出空行
file:表示輸出到那個對象。默認為 sys.stdout ,即顯示器。必須是一個具有 write(string)?方法的對象或 None 。但由于要打印的參數(shù)會被轉換為str,因此 print()?不能用于二進制模式的文件對象,如 BytesIO
flush:輸出是否被緩存通常決定于?file,但如果?flush?為 True,流會被強制刷新(把緩沖區(qū)的數(shù)據(jù)強行輸出,清空緩沖區(qū))。必須為 bool。python3.3新增
為 False 時先寫入緩存,再寫入文件,中途出錯可能丟失。為 True 時強制寫入文件。
簡化理解:假期時老師一布置作業(yè),學霸就開始寫,沒寫完就不玩,而學渣要等到開學前一天通宵學習,到上學做不完了,可能還要作業(yè)沒搞定就交了。用 flush=True 就是學霸了(很不專業(yè),理解意思就行)
三、執(zhí)行過程
print() 函數(shù)的執(zhí)行過程大致如下:
對于 objects 中的每一個元素 x,調用 str(x)。注意不是repr(x)
用 sep 拼接生成的每一個 str(x)
再在最后加上 end
向 file 指定的對象輸出
至于 % 格式化字符串等,其實不是 print 函數(shù)的功能,本文不再提及。
END

參考資料:
https://docs.python.org/zh-cn/3.8/library/functions.html
https://www.runoob.com/python3/python-func-print.html
https://blog.csdn.net/weixin_44716687/article/details/105675638
以上內容如有錯誤,請指出!