Ввод и вывод данных
Важной частью любой программы являются операции ввода-вывода: получение данных от пользователя и отправка результатов обратно. В самом простом виде в Python это реализуются в виде двух встроенных функций: уже знакомой нам функции print() для вывода данных на экран, и функции input() для получения данных от пользователя.
Вывод данных
Функция print() – одна из наиболее используемых функций в Python, позволяющая выводить различные объекты на экран.
|
Функция |
|
|
Описание |
Выводит все элементы |
|
Параметры |
Необязательные параметры:
|
|
Возвращаемое значение |
|
Символ * в параметре *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() может принимать одно необязательное строковое сообщение, которое отображается перед вводом, и возвращает строку, введённую пользователем. Например, давайте попросим пользователя ввести его имя, а затем выведем приветствие:
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 = Результат".
|
Пример входных данных |
Пример выходных данных |
|---|---|
|
|
|
|
|
|
|
|
|
n1 = int(input("Введите первое число: "))
n2 = int(input("Введите второе число: "))
print(f"{n1} + {n2} = {n1 + n2}")
4. Какой тип данных возвращает функция input()?
Строка.
5. Запросите у пользователя название фильма и выведите его на экран в виде строки "Мне тоже нравится фильм {название}".
|
Пример входных данных |
Пример выходных данных |
|---|---|
|
|
|
|
|
|
|
|
|
movie = input("Введите название вашего любимого фильма: ")
print(f"Мне тоже нравится фильм \"{movie}\"!")
0 комментариев