python-不換行輸出+print()完整引數詳解
阿新 • • 發佈:2018-12-11
0.摘要
由於特殊的輸出要求,我們在使用print()函式時,並不希望輸出結束後自動換行。
1.print()指定換行符
print('hello',end='')
print('world')
#result:helloworld
當print()函式,指定end引數為空字元後,print()函式就不再主動新增換行符了。
2.print()函式
知道了如何實現輸出不換行,下面我們來看一下原理。
print()函式的形式是:
print(*objects, sep=' ', end='\n', file=sys.stdout,flush=False)
- objects -- 複數,表示可以一次輸出多個物件。輸出多個物件時,需要用 , 分隔。
- sep -- 用來間隔多個物件,預設值是一個空格。
- end -- 用來設定以什麼結尾。預設值是換行符 \n,我們可以換成其他字串。
- file -- 要寫入的檔案物件。
- flush--是否要強行重新整理stream
上文對objects和end已經做了演示,不在贅述。
sep可以幫助我們填充分隔符,比如:
ip_0 = '166'
ip_1 = '111'
ip_2 = '77'
ip_3 = '201'
print(ip_0,ip_1,ip_2,ip_3,sep='.')
#result:166.111.77.201
file引數,可以指定輸出物件,預設是當前的sys.stdout,也就是直接打印出來。
如果我們將物件設定為檔案,那麼利用file引數就可以輕鬆地將文字寫入檔案,實現長期儲存。
zen = '''Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. ''' with open('./Zen_of_Python.txt','w') as f: print(zen,file=f)
flush引數控制的是重新整理功能。
對於寫入檔案,如果flush=False,文字會存放在記憶體中,直到檔案關閉,才寫入;
如果flush=True,文字會立即重新整理到檔案中。