你真的懂print('Hello World!')?我不信
↑↑↑點擊上方藍(lán)字,回復(fù)資料,10個G的驚喜
相信很多同學(xué)入門Python的第一行代碼都是print('Hello World!')
print是初學(xué)者最先接觸的Python函數(shù),但是很多同學(xué)可能到現(xiàn)在也不完全清楚它的用法。
print(*objects,?sep=’?‘,?end=’\n’,?file=sys.stdout,?flush=False)
參數(shù):
objects – 復(fù)數(shù),表示可以一次輸出多個對象。輸出多個對象時,需要用 , 分隔。
sep – 用來間隔多個對象,默認(rèn)值是一個空格。
end – 用來設(shè)定以什么結(jié)尾。默認(rèn)值是換行符 \n,我們可以換成其他字符串。
file – 要寫入的文件對象。
flush – 輸出是否被緩存通常決定于 file,但如果 flush 關(guān)鍵字參數(shù)為 True,流會被強制刷新。
除了常用的objects,剩下幾個參數(shù)大家應(yīng)該比較陌生吧?下面咱們看看這幾個參數(shù)可以玩出什么花樣?
默認(rèn)情況下,print 函數(shù)會將內(nèi)容打印輸出到標(biāo)準(zhǔn)輸出流(即 sys.stdout),可以通過 file 參數(shù)自定義輸出流。
with?open('data.txt',?'w')?as?f:
????print('Hello?World!',?file=f)
然后工作目錄下就會保存一份txt文件
注意:print輸出的其實有兩行,第二行為空。這是因為當(dāng)我們在 Python 中打印對象調(diào)用 print(obj) 時候,事實上是調(diào)用了sys.stdout.write(obj+'\n'),print 將需要的內(nèi)容打印到控制臺,然后追加了一個換行符。
import?sys
sys.stdout.write('Hello?World!'+'\n')
print('Hello?World!')
##?上面兩行是等價的
如果不想讓print自動換行,怎么辦呢?只需要指定end參數(shù)為空即可
print('Hello?World!',end='')
flush這個參數(shù)就更有意思了,print() 函數(shù)會把內(nèi)容放到內(nèi)存中,不一定及時刷新顯示到屏幕中。使用flush=True之后,會在print結(jié)束之后,不管你有沒有達(dá)到條件,立即將內(nèi)存中的東西顯示到屏幕上,清空緩存。
這樣就可以實現(xiàn)一些裝逼效果滿分的操作了
比如動態(tài)Loading效果:
import?time
print("Loading",end?=?'')
for?i?in?range(10):
????print(".",end?=?'',flush?=?True,)
????time.sleep(0.2)
print('\n',"Hello World!")
再比如打字機效果
import?time
def?printer(text,?delay=0.3):
????for?ch?in?text:
????????print(ch,?end='',?flush=True)
????????time.sleep(delay)
printer('Hello?World!')
同學(xué)們學(xué)廢了嗎?給了三連可好?
Python數(shù)據(jù)可視化,被Altair圈粉了





