5.3 使用其他分隔符或行終止符打印

2018-02-24 15:26 更新

問題

你想使用print()函數(shù)輸出數(shù)據(jù),但是想改變默認(rèn)的分隔符或者行尾符。

解決方案

可以使用在 print() 函數(shù)中使用 sepend 關(guān)鍵字參數(shù),以你想要的方式輸出。比如:

>>> print('ACME', 50, 91.5)
ACME 50 91.5
>>> print('ACME', 50, 91.5, sep=',')
ACME,50,91.5
>>> print('ACME', 50, 91.5, sep=',', end='!!\n')
ACME,50,91.5!!
>>>

使用 end 參數(shù)也可以在輸出中禁止換行。比如:

>>> for i in range(5):
...     print(i)
...
0
1
2
3
4
>>> for i in range(5):
...     print(i, end=' ')
...
0 1 2 3 4 >>>

討論

當(dāng)你想使用非空格分隔符來輸出數(shù)據(jù)的時(shí)候,給 print() 函數(shù)傳遞一個(gè) seq 參數(shù)是最簡(jiǎn)單的方案。有時(shí)候你會(huì)看到一些程序員會(huì)使用 str.join() 來完成同樣的事情。比如:

>>> print(','.join('ACME','50','91.5'))
ACME,50,91.5
>>>

str.join() 的問題在于它僅僅適用于字符串。這意味著你通常需要執(zhí)行另外一些轉(zhuǎn)換才能讓它正常工作。比如:

>>> row = ('ACME', 50, 91.5)
>>> print(','.join(row))
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
TypeError: sequence item 1: expected str instance, int found
>>> print(','.join(str(x) for x in row))
ACME,50,91.5
>>>

你當(dāng)然可以不用那么麻煩,僅僅只需要像下面這樣寫:

>>> print(*row, sep=',')
ACME,50,91.5
>>>
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)