
print – одна из первый функций, с которой знакомятся новички, изучающие Python.
>>> print("Hello world!") Hello world!
Однако, print умеет больше, чем просто печатать через пробел. Взглянем на сигнатуру:
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
Именованные параметры управляют поведением функции.
Во-первых, обратим внимание на параметр sep – это строка-разделитель, она будет вставлена между каждым из неименованных параметров переданным в print (по умолчанию – одиночный пробел).
>>> print(1, 2, 3, 4, sep=" and ") 1 and 2 and 3 and 4
Если передать sep=’\n’, то каждый параметр будет выведен с новой строки.
Во-вторых, параметр end – будет выведен после печати последнего аргумента. По умолчанию, перевод строки. Например, иногда требуется печатать в одну строку: тогда передим end=»:
>>> print("Same", end=''); print("Line") SameLine
Параметр file указывает файл или поток, в который будет выводится информация, по умолчанию, это стандартный вывод sys.stdout. Можно печатать в файл:
>>> f = open('1.txt', 'w') >>> print("hello", file=f) >>> f.close()
Параметр flush=True заставляет систему немедленно сбросить содержимое буфера в поток вывода. Изредка данные застревают в буфере, и этим мы их проталкиваем. Например, при end=», «1» появится только через 5 секунд сразу с «2».
>>> print('1', end=''); time.sleep(5); print('2')
Исправим это:
>>> print('1', end='', flush=True); time.sleep(5); print('2')
Наконец, не забудем, что бывает удобно печатать коллекции, передав их в print со звездочкой.
>>> arr = ["Apple", "pear", "orange"] >>> print(*arr, sep=", ") Apple, pear, orange