Python 的 print使用解析
大家好!今天我們來聊聊Python里最 “平平無奇” 卻又無處不在的print()函數(shù)。
作為Python開發(fā)者,我們幾乎每天都在用它,但你真的了解它的所有玩法嗎?
其實(shí)很多時候,我們只用了它 10% 的功力。
今天,我們就來扒一扒 print 函數(shù)的“隱秘角落”。
掌握了它的幾個參數(shù),保證讓你在同事眼中瞬間變身 Python 資深玩家!
1. 基礎(chǔ)玩法:不僅僅是打印一個字符串
如果你把鼠標(biāo)懸停在 print 函數(shù)上,你會發(fā)現(xiàn)它的第一個參數(shù)其實(shí)是 *args(或者叫 *objects)。
那個星號 * 意味著它是 “貪婪” 的--你可以給它塞進(jìn)一個,甚至無數(shù)個對象。
比如:
# 普通玩家
print("毛肚")
print("鴨腸")
print("雪花肥牛")
# 進(jìn)階玩家:一次性打印多個
print("毛肚", "鴨腸", "雪花肥牛")
# 輸出:毛肚 鴨腸 雪花肥牛更酷的是,如果你有一個列表,你可以直接通過解包(Unpacking)把它“炸”開傳給 print:
hotpot_list = ["蝦滑", "寬粉", "娃娃菜"] print(hotpot_list) # 輸出:['蝦滑', '寬粉', '娃娃菜'] # 加上星號 * 進(jìn)行解包 print(*hotpot_list) # 輸出:蝦滑 寬粉 娃娃菜
加上*號,列表的方括號沒了,逗號也沒了,直接變成了清爽的空格分隔。
2. 拒絕千篇一律的空格:sep 參數(shù)
細(xì)心的你可能發(fā)現(xiàn)了,上面打印多個元素時,默認(rèn)是用空格隔開的。
如果你想打印一個日期,或者生成一個 CSV 格式的字符串,空格就顯得很尷尬了。
這時候,sep(separator 分隔符)參數(shù)閃亮登場。
比如:格式化日期
year = 2026 month = 1 day = 15 # 默認(rèn)情況 print(year, month, day) # 輸出:2026 1 15 (不太好看) # 使用 sep 參數(shù) print(year, month, day, sep="-") # 輸出:2026-1-15 (這就對了?。?/pre>
或者生成一個豎線分割的標(biāo)題樣式:
print("Python", "Java", "C++", sep=" | ")
# 輸出:Python | Java | C++只要你愿意,分隔符可以是任何字符,甚至是一段話。
3. 控制結(jié)尾的藝術(shù):end 參數(shù)
默認(rèn)情況下,print 函數(shù)是個“急性子”,每打印完一次,它都會自動幫我們敲一個回車換行(\n)。
這就是為什么我們連續(xù)寫三個 print,它們會顯示在三行。
但有時候,我們想把兩句話連在一起,或者在同一行輸出內(nèi)容,這時就需要 end 參數(shù)出馬了。
print("兇手其實(shí)是", end="......")
print("管家!")
# 輸出:兇手其實(shí)是......管家!
這樣,兩行代碼的輸出無縫銜接在了一起。
注意: 如果你把 end 設(shè)置為空字符串或者非換行符,記得在最后適當(dāng)?shù)丶右粋€換行,否則你的終端提示符可能會尷尬地?cái)D在文字后面。
4. 偷偷記筆錄:file 參數(shù)
這是很多初學(xué)者最容易忽略的參數(shù)。
print 默認(rèn)是將內(nèi)容輸出到 sys.stdout(也就是你的屏幕/控制臺),但其實(shí),它完全可以把內(nèi)容“打印”到文件里。
這就相當(dāng)于你自己寫了一個迷你版的日志記錄器(Logger),非常適合快速調(diào)試或記錄腳本運(yùn)行結(jié)果。
# 打開一個文件用于追加內(nèi)容
with open("摸魚日志.txt", "a", encoding="utf-8") as f:
print("10:00 - 喝了一杯咖啡", file=f)
print("10:30 - 刷了一會兒推特", file=f)
print("11:00 - 盯著屏幕發(fā)呆", file=f)
print("日志記錄完畢,請查看 摸魚日志.txt")運(yùn)行完這段代碼,控制臺只會顯示最后一句提示,而你的 “摸魚記錄” 已經(jīng)悄悄保存在了 txt 文件里。
雖然對于大型項(xiàng)目我們推薦用 logging 模塊,但在這個腳本寫的小工具里,用 file 參數(shù)簡直不要太方便。
5. 拒絕卡頓,實(shí)時刷新:flush 參數(shù)
最后這個參數(shù) flush,常常讓新手摸不著頭腦。
計(jì)算機(jī)為了效率,通常會有 “緩沖區(qū)” 的概念。
當(dāng)你 print 東西時,它不一定會立刻顯示在屏幕上,而是攢夠了一波再一起吐出來(特別是當(dāng)你沒有換行的時候)。
這會導(dǎo)致有時候你寫了代碼,屏幕卻像卡死了一樣半天沒反應(yīng)。
如果你想做一個倒計(jì)時或者進(jìn)度條,就需要將 flush 設(shè)置為 True,強(qiáng)制計(jì)算機(jī):“別攢了,立刻給我顯示出來!”
import time
print("正在入侵系統(tǒng)", end="")
for i in range(5):
print(".", end="", flush=True) # 關(guān)鍵在這里!
time.sleep(0.5)
print("\n入侵成功!")如果你不加 flush=True,你可能會發(fā)現(xiàn)屏幕卡頓了 2.5 秒,然后一次性蹦出五個點(diǎn)。
加上之后,你就能看到那種 “嘟...嘟...嘟...” 的動態(tài)加載效果了。
6. 總結(jié)
雖然在 90% 的日常開發(fā)中,我們只需要最簡單的 print(x),但編程的樂趣往往隱藏在剩下的 10% 里。
*args:讓你可以一次打印多個寶貝,或者解包列表。sep:讓你自定義元素之間的膠水。end:讓你控制話有沒有說完(換不換行)。file:讓你把話悄悄說給文件聽。flush:讓你拒絕延遲,即刻兌現(xiàn)。
到此這篇關(guān)于python基礎(chǔ)語法的文章就介紹到這了,更多相關(guān)python基礎(chǔ)語法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決python執(zhí)行較大excel文件openpyxl慢問題
這篇文章主要介紹了解決python執(zhí)行較大excel文件openpyxl慢問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
Python實(shí)現(xiàn)random.uniform函數(shù)的用法小結(jié)
Python的random.uniform函數(shù)用于生成[a,b]區(qū)間均勻分布隨機(jī)數(shù),下面就來介紹一下random.uniform函數(shù)的使用,具有一定的參考價值,感興趣的可以了解一下2025-06-06
Python實(shí)現(xiàn)復(fù)雜對象轉(zhuǎn)JSON的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)復(fù)雜對象轉(zhuǎn)JSON的方法,結(jié)合具體實(shí)例形式分析了Python針對json轉(zhuǎn)換的相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
python實(shí)現(xiàn)定時任務(wù)的多種方式詳解
Python社區(qū)提供了多種庫來實(shí)現(xiàn)定時任務(wù),下面這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)定時任務(wù)的多種方式,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-05-05
Python比較文件夾比另一同名文件夾多出的文件并復(fù)制出來的方法
這篇文章主要介紹了Python比較文件夾比另一同名文件夾多出的文件并復(fù)制出來的方法,涉及Python針對文件與文件夾的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03

