5.3 使用其他分隔符或行终æ¢ç¬¦æ‰“å�°Â¶
问题¶
ä½ æƒ³ä½¿ç”¨ print() 函数输出数æ�®ï¼Œä½†æ˜¯æƒ³æ”¹å�˜é»˜è®¤çš„分隔符或者行尾符。
解决方案¶
å�¯ä»¥ä½¿ç”¨åœ¨ print() 函数ä¸ä½¿ç”¨ sep å’Œ end 关键å—å�‚æ•°ï¼Œä»¥ä½ æƒ³è¦�的方å¼�输出。比如:
>>> 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 å�‚数也å�¯ä»¥åœ¨è¾“出ä¸ç¦�æ¢æ�¢è¡Œã€‚比如:
>>> 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 >>>
讨论¶
å½“ä½ æƒ³ä½¿ç”¨é�žç©ºæ ¼åˆ†éš”符æ�¥è¾“出数æ�®çš„æ—¶å€™ï¼Œç»™ print() å‡½æ•°ä¼ é€’ä¸€ä¸ª sep å�‚数是最简å�•的方案。
æœ‰æ—¶å€™ä½ ä¼šçœ‹åˆ°ä¸€äº›ç¨‹åº�员会使用 str.join() æ�¥å®Œæˆ�å�Œæ ·çš„事情。比如:
>>> print(','.join(('ACME','50','91.5')))
ACME,50,91.5
>>>
str.join() 的问题在于它仅仅适用于å—符串。这æ„�味ç�€ä½ 通常需è¦�执行å�¦å¤–一些转æ�¢æ‰�能让它æ£å¸¸å·¥ä½œã€‚比如:
>>> 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
>>>
ä½ å½“ç„¶å�¯ä»¥ä¸�用那么麻烦,å�ªéœ€è¦�åƒ�下é�¢è¿™æ ·å†™ï¼š
>>> print(*row, sep=',')
ACME,50,91.5
>>>