print в Python: вывод сообщения на экран

Привет! В этой статье мы поговорим о функции print в Python. Эта функция используется для вывода сообщений на экран и в файл. Мы подробно разберем то, как можно использовать эту функцию, а также ее отличия в Python 3 от Python 2.

Иллюстрация print в Python

Вывод сообщения на экран в Python 3

Для вывода на экран в Python 3 мы можем воспользоваться встроенной функцией print:

print("Привет мир!")

Вывод:

Привет мир!

Вывод сообщения на экран в Python 2

Во второй версии Python нужно использовать ключевое слово print, а не функцию:

print "Привет мир!"

Вывод:

Привет мир!

Дальше в статье мы будем подробно разбирать именно функцию print в Python 3. Если вы хотите подробнее почитать про print во второй версии Python, то рекомендую почитать официальную документацию.

Функция print

Функция print в Python имеет следующий вид:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
  • Сначала мы передаем объекты, которые хотим вывести на экран. Функция print автоматически преобразует их в строки. Звездочка означает то, что мы можем передать сколько угодно значений.
  • По умолчанию, все значения будут выведены через пробел. Для того, чтобы поменять разделитель, нужно передать sep='разделитель'.
  • После того, как все объекты были выведены, функция print перенесет строку. Мы можем поменять то, что будет выведено в самом конце при помощи аргумента end.
  • По умолчанию, вывод будет производиться на экран. Мы можем указать файл в который нужно вывести сообщение при помощи аргумента file.
  • flush определяет, нужно ли отображать сообщение сразу после вызова функции или можно подождать. Обычно сообщения не выводятся сразу после вызова, потому что так программы работают быстрее. Если вы хотите быть уверенным, что сообщение отобразится сразу после вызова функции print, то укажите flush=True.

Давайте теперь посмотрим как использовать каждый из этих аргументов по отдельности.

Вывод нескольких значений

print позволяет вывести сразу несколько значений одним сообщением:

print("Я", "пошел", "гулять")

Вывод:

Я пошел гулять

При этом мы можем передавать не только строки:

print("2 * 3 =", 6)

Вывод:

2 * 3 = 6

Функция print сконвертирует в строку любое значение, которое мы ей передадим. Давайте попробуем вывести функцию print при помощи функции print:

print('print:', print)

Вывод:

print: <built-in function print>

Тут мы видим, что print - это встроенная функция в Python.

Как поменять разделитель в print

Чтобы поменять пробел на что-то другое при выводе нескольких значений, мы можем передать параметр sep:

print(1, 2, 3, sep=", ")

Вывод:

1, 2, 3

Тут мы вывели числа, разделенные запятой с пробелом. Вы можете выбрать разделитель согласно вашим задачам.

Как поменять окончание вывода

По умолчанию, print переносит строку после каждого вывода:

print("Первая строка")
print("Вторая строка")

Вывод:

Первая строка
Вторая строка

Мы можем поменять то, что выводиться в конце сообщения при помощи аргумента end:

print("Один |", "Два", end=" | ")
print("Три")

Вывод:

Один | Два | Три

Вывод сообщения в файл

Для вывода сообщения в файл print поддерживает специальный параметр - file. Давайте попробуем вывести сообщение "Привет мир!" в файл output.txt:

with open("output.txt", "w") as f:
    print("Привет мир!", file=f)

output.txt:

Привет мир!

В примере выше мы используем функцию open для открытия файла на запись. После того, как файл открыли, нужно его передать в параметр file функции print.

Сброс вывода при помощи flush

Перед тем, как сбрасывать вывод функции print, давайте продемонстрируем тот факт, что вывод сообщений не появляется на экране сразу:

import time

print("Сообщение #1", end=", ")
time.sleep(3)
print("сообщение #2")

Тут я советую запустить эту программу вашем компьютере, чтобы увидеть все своими глазами. В любом случае, вот что произойдет:

  1. Первые три секунды на экране вы ничего не увидите, хотя функция print была вызвана.
  2. После того, как пройдет три секунды, второй вызов функции print сбросит накопившейся вывод на экран.

В итоге мы увидим следующую строку:

Сообщение #1, сообщение #2

Чтобы увидеть первое сообщение сразу, а не после второго вызова функции print, нужно указать flush=True. Это заставит Python вывести "Сообщение #1, " не дожидаясь второго вызова print:

import time

print("Сообщение #1", end=", ", flush=True)
time.sleep(3)
print("сообщение #2")

По умолчанию Python выводит сообщение на экран после символа переноса строки '\n'. Поэтому для демонстрации работы параметра flush мы поменяли end для первого сообщения на запятую.

Пример: вывод числа int на экран

Как мы уже видели, для вывода чисел при помощи функции print можно просто передать это число в функцию:

number = 1
print(number, 2)

Вывод:

1 2

Пример: вывод строки на экран

Строку тоже можно просто передать как параметр в функцию print для ее вывода:

print("Вывод строки в Python")

Вывод:

Вывод строки в Python

Пример: вывод списка в Python

Для вывода списка можно просто передать его в функцию. В этом случае print отобразит элементы списка через запятую в квадратных скобках:

l = [1, "два", 3]

print(l)

Вывод:

[1, 'два', 3]

Если вам нужно вывести элементы по-другому, то вы можете сделать это вручную:

l = [1, "два", 3]
for index, item in enumerate(l):
    print(item, end="")
    if index == len(l) - 1:
        print() # перенос строки
    else:
        print(" | ", end="") # вывод своего разделителя

Вывод:

1 | два | 3

Но пример выше слишком многословный. Гораздо проще воспользоваться методом join:

l = [1, "два", 3]
print(" | ".join(str(x) for x in l))

Вывод:

1 | два | 3

Тут мы сначала преобразовали все элементы списка в строки при помощи генератора, а потом соединили элементы при помощи join.

Пример: вывод словаря при помощи print

Функция print также умеет красиво выводить словари:

d = {"A": 1, "B": 2}
print("Словарь:", d)

Вывод:

Словарь: {'A': 1, 'B': 2}

Пример: вывод множества в Python

Множество тоже можно выводить используя функцию print:

s = {1, 2, 3}
print("Множество:", s)

Вывод:

Множество: {1, 2, 3}

Упражнения

  1. Использование print:
    Напишите программу на Python, которая запрашивает у пользователя его имя и выводит приветственное сообщение на экран с использованием функции print.
  2. Вывод в файл с помощью print:
    Создайте текстовый файл с именем “output.txt”. Напишите программу, которая использует функцию print, чтобы записать в этот файл строку “Привет, мир!“. После выполнения программы откройте файл и убедитесь, что строка была записана корректно.
  3. Управление разделителями и завершением строки в print:
    Напишите программу, которая демонстрирует возможность использования различных разделителей и символов завершения строки в функции print. Попробуйте изменить стандартный разделитель (пробел) и стандартное завершение строки (новая строка) на что-то другое и выведите несколько значений на экран.

Обсуждение