Шаг 81.
Python: сборник рецептов.
Файлы и ввод-вывод. Вывод с другим разделителем или символом конца строки

    На этом шаге мы рассмотрим способы решения этой задачи.

Задача

    Вы хотите вывести данные с помощью print(), но также хотите поменять символ-разделитель или символ конца строки.

Решение

    Используйте именнованные аргументы sep и end с функцией print(), чтобы изменить вывод так, как вам нужно. Например:

>>> 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() с разными разделителями элементов часто является самым простым способом вывести данные, когда вам нужно сделать это с другим разделителем элементов. Однако иногда вы можете увидеть, как программисты используют str.join() для выполнения этой же задачи:

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

    Проблема str.join() в том, что он работает только со строками. Это значит, что часто необходимо выполнить различные акробатические трюки, чтобы заставить его работать. Например:

>>> row = ('ACME', 50, 91.5)
>>> print(','.join(row))
print(','.join(str(x) for x in row))
ACME,50,91.5
>>> 

    Вместо этого вы могли бы просто написать так:

>>> print(*row, sep=',')
ACME,50,91.5
>>> 

    На следующем шаге мы рассмотрим чтение и запись бинарных данных.




Предыдущий шаг Содержание Следующий шаг