1. 程式人生 > >python-不換行輸出+print()完整引數詳解

python-不換行輸出+print()完整引數詳解

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,文字會立即重新整理到檔案中。