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

Вывод данных

Функция print() – одна из наиболее используемых функций в Python, позволяющая выводить различные объекты на экран.

Функция

print(*objects , sep=" ", end="\n")

Описание

Выводит все элементы objects, разделяя их строкой sep, и завершая вывод строкой end

Параметры

  •  *objects – последовательность объектов, которые необходимо вывести на экран

Необязательные параметры:

  • sep – строка-разделитель объектов *objects, по умолчанию объекты разделяются пробелом
  • end – строка, которой завершается вывод всех объектов *objects, по умолчанию это перенос строки (\n)

Возвращаемое значение

None

Символ * в параметре *objects означает, что функции print() может быть передано любое количество объектов, перечисленных через запятую:

print(1, 2, 3)
# Вывод: 1 2 3
print("3 в квадрате равно", 3 ** 2)
# Вывод: 3 в квадрате равно 9
message = "Купить яйца:"
print(message, 10) 
# Вывод: Купить яйца: 10

По умолчанию все объекты разделяются пробелом, а в конце добавляется символ переноса строки (\n), поэтому каждый следующий вызов функции print() выводит данные на новой строке. Однако такое поведение можно изменить с помощью параметров sep (от англ. separator – разделитель) и end (c англ. – конец).

При изменении параметра sep все значения разделяются между собой его значением, а не пробелом. В качестве разделителя можно передать любую строку:

print(1, 2, 3, sep=" | ") 
# Вывод: 1 | 2 | 3
print("Ручка", "Карандаш", "Линейка", sep="_") 
# Вывод: Ручка_Карандаш_Линейка
print("x", "y", "z", sep="\t") 
# Вывод: x    y    z

Параметр end изменяет завершение строки, например, чтобы следующий вывод шел сразу за предыдущим:

print("Сегодня идёт дождь", end=", ")
print("нужно взять зонт")

Тогда в результате на экран будет выведена одна строка, а не две:

Сегодня идёт дождь, нужно взять зонт

Без изменения значения параметра end вывод выглядел бы следующим образом:

Сегодня идёт дождь
нужно взять зонт

Ввод данных

Получение данных от пользователя позволяет создавать по-настоящему интерактивные программы и осуществляется с помощью функции input(). Когда программа доходит до вызова input() она приостанавливает свое выполнение и ждет, пока пользователь введет текст и нажмет клавишу Enter.

Функция

input(help)

Описание

Возвращает строку, введённую пользователем

Параметры

Необязательные параметры:

  • help – строка-подсказка, которая может отображаться перед ожиданием ввода

Возвращаемое значение

Строка

Функция input() может принимать одно необязательное строковое сообщение, которое отображается перед вводом, и возвращает строку, введённую пользователем. Например, давайте попросим пользователя ввести его имя, а затем выведем приветствие:

name = input("Пожалуйста, введите своё имя: ")
print(f"Здравствуй, дорогой друг {name}!")
# Ввод: Пожалуйста, введите своё имя: Бильбо 
# Вывод: Здравствуй, дорогой друг Бильбо!

Независимо от введённых данных, функция input() всегда возвращает строку. Чтобы продолжить работу с введёнными данными, как с числами, их нужно привести их к нужному типу с помощью функций преобразования, таких как int() или float():

n1 = int(input("Введите первое число: "))
n2 = int(input("Введите второе число: "))
print(f"Сумма чисел {n1} и {n2} равна {n1 + n2}")
# Ввод: Введите первое число: 2
# Ввод: Введите второе число: 3
# Вывод: Сумма чисел 2 и 3 равна 5

Функции input() и print() часто используются вместе для создания интерактивных программ, которые запрашивают у пользователя данные, которые обрабатывают и отображают результаты.

Примеры

Пример 1. Форма регистрации на сайте

Пользователь регистрируется на сайте и вводит данные для создания аккаунта: логин, почту и пароль:

# Форма регистрации нового пользователя
login = input("Придумайте логин: ")
password = input("Придумайте пароль: ")
email = input("Введите вашу электронную почту: ")
 
# Вывод приветственного сообщения
print(f"=================================\nСпасибо за регистрацию, {login}!")
print(f"На вашу почту {email} отправлено письмо с подтверждением.")

Вывод:

Придумайте логин: dragon99
Придумайте пароль: qwerty123
Введите вашу электронную почту: red_drago99@mail.ru 
=================================
Спасибо за регистрацию, dragon99!
На вашу почту red_drago99@mail.ru отправлено письмо с подтверждением.

Пример 2. Калькулятор чаевых

Программа рассчитывает сумму чаевых на основе счета и процента, который вводит пользователь:

# Ввод пользователем суммы счёта и процента чаевых
bill = float(input("Введите сумму счета: ")) 
tip_percent = float(input("Введите процент чаевых (например, 10): "))  

# Расчёт чаевых 
tip_amount = bill * (tip_percent / 100)
# Подсчёт итоговой суммы
total = bill + tip_amount
 
# Вывод рассчитанных сумм на экран
print("\nИтоговая сумма:", f"{total:.2f} руб.", sep="\t\t")  
print("Из них чаевые:", f"{tip_amount:.2f} руб.", sep="\t\t")

Вывод:

Введите сумму счета: 2250
Введите процент чаевых (например, 10): 12
==========================================
Итоговая сумма:         2520.00 руб.
Из них чаевые:          270.00 руб.

Итоги

  • Функция print() предназначена для вывода данных на экран.
  • По умолчанию объекты, выводимые на экран, разделяются пробелом, а строка завершается переносом строки. Это можно изменить с помощью параметров sep и end.
  • Функция input() предназначена для получения данных от пользователя и всегда возвращает строку.
  • Перед ожиданием ввода может быть выведена строка-подсказка, переданная функции input() в качестве параметра.

Задания для самопроверки

1. Что будет выведено на экран в результате выполнения данного кода?

print("\"Хлеб", "молоко", "колбаса", sep=", ", end=" ")
print("ещё", "наверное", "конфеты", sep=", ", end="!\" - ")
print("думал", "Иван", end=".")
"Хлеб, молоко, колбаса и что-то ещё, - вспоминал в магазине Иван, - наверное, ещё конфеты".

2. В следующих переменных хранятся личные данные пользователя:

name = "Пьер"
last_name = "Безухов"

Вставьте значения этих переменных в строку так, чтобы в результате на экран было выведено:

Добрый вечер, дорогой Пьер Безухов!
name = "Пьер"
last_name = "Безухов"
print(f"Добрый вечер, дорогой {name} {last_name}!")

3. Запросите у пользователя два целых числа и выведите на экран их сумму в виде строки "Число1 + Число2 = Результат".

Пример входных данных

Пример выходных данных

1
2

1 + 2 = 3

10
12

10 + 12 = 22

34
6

34 + 6 = 40

n1 = int(input("Введите первое число: "))
n2 = int(input("Введите второе число: "))
print(f"{n1} + {n2} = {n1 + n2}")

4. Какой тип данных возвращает функция input()?

Строка.

5. Запросите у пользователя название фильма и выведите его на экран в виде строки "Мне тоже нравится фильм {название}".

Пример входных данных

Пример выходных данных

Звёздная пыль

Мне тоже нравится фильм "Звёздная пыль"!

Терминатор 2

Мне тоже нравится фильм "Терминатор 2"!

Тор

Мне тоже нравится фильм "Тор"!

movie = input("Введите название вашего любимого фильма: ")
print(f"Мне тоже нравится фильм \"{movie}\"!")