Больше, чем просто «Hello, world».
Все курсы по программированию на Python начинаются с изучения функции print(). С её помощью разработчики могут выводить данные на экран, а новички — печатать в консоли легендарную фразу Hello, world. А ещё в print() есть аргументы, с помощью которых можно гибко управлять выводом.
В этой статье рассказываем про функцию print(), её аргументы и показываем, как ими пользоваться.
Зачем нужна функция print()
print() — встроенная в Python функция, с помощью которой можно вывести текст в консоль. Также с её помощью можно контролировать форматирование вывода, управлять разделителями между элементами, изменять символы окончания строк и перенаправлять вывод данных в файл.
Рассмотрим, как работает функция print() в Python и выведем в консоль классическую для программистских гайдов фразу «Hello, world!». Синтаксис вызова функции выглядит следующим образом:
print(“Hello, world!”)
В ней print() — название функции, а Hello, world! — строка, которую надо вывести в консоль. Если выполнить код, то в терминале появится фраза «Hello, world!».
У функции print() есть дополнительные аргументы — значения, с помощью которых можно модифицировать вывод данных. Их следует передавать во время вызова. С ними синтаксис print() выглядит так:
print(*objects, sep=’ ‘, end=’n’, file=sys.stdout, flush=False)
В ней:
- objects — один или несколько объектов, которые нужно вывести;
- sep — разделитель между объектами (по умолчанию пробел);
- end — символ завершения строки (по умолчанию перевод строки);
- file — объект файла, в который направлен вывод;
- flush — принудительный сброс буфера вывода.
Рассмотрим подробно, как устроен каждый из аргументов и как всё это можно использовать на практике.
Аргумент objects функции print() в Python
Аргумент objects в функции — это то, что мы хотим вывести на экран. Выводить можно:
- Строки. Любой текст, заключённый в одинарные или двойные кавычки:
print(“Ехал грека через реку”) # Ехал грека через реку
- Числа. Целое или дробное число:
print(42) # 42 print(3.14) # 3.14
- Переменные. Имя переменной, в которой хранится какое-либо значение:
name = “Алёна” print(name) # Алёна
- Выражение. Любое математическое или логическое выражение, которое Python может вычислить:
print(2 + 2) # 4
- Список, кортеж или словарь. Эти структуры данных будут выведены в виде строки, представляющей их содержимое:
print([1, 2, 3]) # [1, 2, 3]
В функцию print() можно передать любое количество аргументов objects. Python выведет их в том порядке, в котором получил. Благодаря этому можно печатать в консоль составные строки, например:
age = 30 city = “Алматы” print(“Мне”, age, “лет, и я живу в”, city) # Мне 30 лет, и я живу в Алматы
Аргумент sep функции print() в Python
Аргумент sep определяет, какой разделитель Python будет использовать между элементами функции print(). По умолчанию ставится пробел:
print(“Мир”, “Труд”, “Май”) # Вывод: Мир Труд Май
Но можно поставить, например, восклицательный знак:
print(“Мир”, “Труд”, “Май”, sep=”! “) # Вывод: Мир! Труд! Май
Важно отметить, что sep вставляет разделитель только между объектами, поэтому в конце нашей строки восклицательного знака нет.
sep можно использовать и для «склеивания» нескольких объектов в одну строку:
print(“a”, “b”, “c”, sep=””) # Вывод: abc
Аргумент end функции print() в Python
Аргумент end похож на sep, но ставит знак не между объектами, а после них. По умолчанию в конце каждой строки Python ставит символ перевода строки (n).
С помощью end можно добавить любой знак в конце строки:
print(“Мир”, “Труд”, “Май”, end=”!”) # Вывод: Мир Труд Май! print(“Мир”, “Труд”, “Май”, sep=”! “, end=”!”) # Вывод: Мир! Труд! Май!
Аргумент file функции print() в Python
Аргумент file позволяет перенаправить вывод данных не в консоль, а в указанный файл. Это полезно, когда нужно записать результаты работы программы в файл, чтобы их потом как-нибудь использовать. Например, с помощью вывода в файл можно сохранять логи выполнения программы или создавать отчёты.
Перед выводом данных в файл надо открыть сам файл. Для этого используют следующую конструкцию:
with open(“output.txt”, “w”, encoding=”utf-8″) as f:
В ней мы вызываем функцию open() с помощью оператора with. В качестве аргументов функции указываем название файла (“output.txt”), режим работы (“w”) и кодировку (encoding=”utf-8″).
Режим работы «w” означает, что мы будем записывать данные в файл с перезаписью содержимого, а если в папке проекта не будет документа с указанным названием, то Python создаст его. Разработчики также иногда используют режим работы «a”. С его помощью можно записать новые данные в конец файла без удаления текущего содержимого.
После этого в блоке with можно указывать данные, которые следует записать в файл:
with open(“output.txt”, “w”, encoding=”utf-8″) as f: print(“Эту строку Python запишет в файл output.txt”, file=f) print(“Вторая строка тоже будет в файле”, file=f)
Аргумент flush функции print() в Python
У функции print() есть буфер, в котором Python собирает данные и выводит их чуть позже — например, после завершения строки. Этот механизм добавили для увеличения эффективности кода, чтобы программа не тратила ресурсы на безостановочный вывод данных. В некоторых проектах данные надо вывести сразу и не задерживать их в буфере — например, если вы хотите одновременно печатать строки и редактировать их.
Буфер функции print() можно отключить с помощью аргумента flush:
print(“Эту строку Python напечатает моментально”, flush=True)
Например, с помощью аргумента flush можно реализовать анимацию загрузки в терминале:
import time print(“Загрузка”, end=””, flush=True) for i in range(3): time.sleep(1) print(“.”, end=””, flush=True)
Что запомнить
- Функция print() — встроенная в Python функция, с помощью которой можно выводить данные в консоль или записывать в файл.
- У функции print() есть аргументы: sep устанавливает разделитель между объектами, end устанавливает символ завершения строки, file направляет вывод в файл, flush управляет буфером функции, а objects — это то, что мы выводим.