Код
#статьи

Функция print() в Python: аргументы и применение

Больше, чем просто «Hello, world».

Иллюстрация: Оля Ежак для Skillbox Media

Все курсы по программированию на 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 — это то, что мы выводим.

Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована