Задачник · модуль 1 · Данные и имена

Справочник по Python · задачник · модуль 1

Задачи 1.5

1.5

Задачи к главе
«Функция input()»

Программа начинает разговаривать с человеком. Главное в задачах этой главы — не забыть, что input() всегда возвращает строку, и выбрать правильное преобразование: int() для штук, float() для измерений.

Глава справочника
1.5 Функция input(): ввод данных
Можно использовать
главы 1.1–1.5
Разборов
3 с решением
Практика
15 задач без решения
Уже изучено — этим и решаем

Условий и циклов пока нет — они в модулях 2 и 3. Все задачи решаются последовательностью строк сверху вниз. Если пользователь введёт не число, программа остановится с ошибкой — защищаться от этого научимся в главе 8.1.

§1Разборы: как решать и оформлять

Три задачи решены полностью. Смотрите не только на ответ, но и на оформление: исходные данные сверху, расчёт отдельными строками с понятными именами, вывод — в конце.

Разбор 1

Возраст в будущем году

★☆☆базовая

Сервис поздравлений спрашивает имя и год рождения и сообщает, сколько человеку исполнится в 2030 году.

Как рассуждаем

  1. Имя — текст, его можно оставить строкой. Год нужен для вычитания — сразу переводим в int.
  2. Подсказка в input() заканчивается пробелом, чтобы ввод не прилипал к двоеточию.
  3. Расчёт — отдельной строкой, вывод — f-строкой.
main.pyрешение
# Ввод
name = input("Как вас зовут? ")
birth_year = int(input("Год рождения: "))

# Расчёт
age_2030 = 2030 - birth_year

# Вывод
print(f"{name}, в 2030 году вам исполнится {age_2030}.")
Вывод в терминалсиним — то, что ввёл пользователь
Как вас зовут? Анна
Год рождения: 2004
Анна, в 2030 году вам исполнится 26.

Проверка на других данных

Пример 1
Ввод
Олег
1990
Вывод
Олег, в 2030 году вам исполнится 40.
Без int()

2030 - input("Год рождения: ") остановится с TypeError: из числа нельзя вычесть строку. Преобразование пишут прямо в строке ввода — так в переменную сразу попадает число.

Разбор 2

Покупка на развес

★★☆средняя

Касса в овощном отделе спрашивает цену за килограмм и вес покупки и печатает сумму к оплате с копейками.

Как рассуждаем

  1. И цена, и вес бывают дробными — оба значения читаем через float().
  2. Сумма = цена × вес, отдельной переменной.
  3. Деньги выводим с двумя знаками: :.2f.
main.pyрешение
# Ввод
price = float(input("Цена за 1 кг, руб.: "))
weight = float(input("Вес, кг: "))

# Расчёт
cost = price * weight

# Вывод
print(f"К оплате: {cost:.2f} руб.")
Вывод в терминалсиним — то, что ввёл пользователь
Цена за 1 кг, руб.: 189.9
Вес, кг: 2.5
К оплате: 474.75 руб.

Проверка на других данных

Пример 1
Ввод
120
0.75
Вывод
К оплате: 90.00 руб.
int или float

Правило из главы: штуки — int(), измерения — float(). Если здесь взять int(), ввод 2.5 остановит программу с ValueError.

Разбор 3

Калькулятор суммы

★★☆средняя

Программа спрашивает два целых числа и печатает пример со сложением целиком: «первое + второе = сумма».

Как рассуждаем

  1. Оба ввода сразу переводим в int — иначе + склеит строки, и из 5 и 7 получится 57.
  2. Сумму можно посчитать отдельно или прямо в фигурных скобках: выражение короткое и нужно один раз.
  3. Проверяем на отрицательном числе — программа должна работать и с ним.
main.pyрешение
# Ввод
first = int(input("Первое число: "))
second = int(input("Второе число: "))

# Вывод
print(f"{first} + {second} = {first + second}")
Вывод в терминалсиним — то, что ввёл пользователь
Первое число: 5
Второе число: 7
5 + 7 = 12

Проверка на других данных

Пример 1
Ввод
-12
30
Вывод
-12 + 30 = 18
Каждый input() — отдельная остановка

Вторая подсказка появляется только после того, как введено первое число и нажат Enter: строки выполняются сверху вниз.

§2Задачи для самостоятельной работы

Решений здесь нет — только условие и примеры, на которых решение нужно проверить. Сложность отмечена звёздами: ★☆☆ — прямое применение главы, ★★☆ — нужно собрать несколько шагов, ★★★ — есть подвох или требуется догадка.

Задача 1.5.1

Приветствие

★☆☆базовая

Программа спрашивает имя и здоровается.

Примеры для проверки

Пример 1
Ввод
Анна
Вывод
Привет, Анна!
Пример 2
Ввод
Максим
Вывод
Привет, Максим!
Подсказка

Имя — это текст, преобразовывать его не нужно.

Задача 1.5.2

Номера соседних мест

★☆☆базовая

Зритель вводит номер своего места в ряду. Выведите номера мест слева и справа от него.

Примеры для проверки

Пример 1
Ввод
7
Вывод
Слева место 6, справа место 8
Пример 2
Ввод
100
Вывод
Слева место 99, справа место 101
Подсказка

Прибавлять и вычитать можно только из числа — вспомните, что возвращает input().

Задача 1.5.3

Рост в анкете

★☆☆базовая

Анкета спортивной секции просит рост в сантиметрах, а в карточку записывает метры и сантиметры.

Примеры для проверки

Пример 1
Ввод
175
Вывод
Рост: 1 м 75 см
Пример 2
Ввод
203
Вывод
Рост: 2 м 3 см
Подсказка

В метре 100 сантиметров: полные метры и остаток — главы 1.2 и 1.8.

Задача 1.5.4

Удвоенное число

★☆☆базовая

Программа читает целое число и выводит его удвоенное значение.

Примеры для проверки

Пример 1
Ввод
21
Вывод
Удвоенное: 42
Пример 2
Ввод
-7
Вывод
Удвоенное: -14
Подсказка

Без преобразования строка повторится дважды.

Задача 1.5.5

Площадь квадратной плитки

★☆☆базовая

Вводится сторона квадратной плитки в сантиметрах (может быть дробной). Выведите площадь плитки с двумя знаками.

Примеры для проверки

Пример 1
Ввод
30
Вывод
Площадь: 900.00 кв. см
Пример 2
Ввод
12.5
Вывод
Площадь: 156.25 кв. см
Подсказка

Сторона — измерение, значит float().

Задача 1.5.6

Сколько лет до совершеннолетия

★☆☆базовая

Вводится возраст. Выведите, сколько лет осталось до 18. Если человек старше, число получится отрицательным — условий мы пока не знаем, так и выводим.

Примеры для проверки

Пример 1
Ввод
15
Вывод
До 18 лет осталось: 3
Пример 2
Ввод
18
Вывод
До 18 лет осталось: 0
Пример 3
Ввод
20
Вывод
До 18 лет осталось: -2
Подсказка

Одно вычитание и одно преобразование.

Задача 1.5.7

Поездка на машине

★★☆средняя

Программа спрашивает расстояние в километрах (целое), расход топлива в литрах на 100 км и цену литра. Выведите, сколько литров понадобится и сколько это стоит, — с двумя знаками после точки.

Примеры для проверки

Пример 1
Ввод
500
7.5
55.9
Вывод
Топлива: 37.50 л
Стоимость: 2096.25 руб.
Пример 2
Ввод
120
8
60
Вывод
Топлива: 9.60 л
Стоимость: 576.00 руб.
Подсказка

Сначала литры: расстояние / 100 × расход. Потом деньги: литры × цена.

Задача 1.5.8

Зарплата на руки

★★☆средняя

Бухгалтер вводит зарплату до вычета налога. Налог — 13%. Выведите налог, сумму на руки и заработок за один рабочий день, если в месяце 22 рабочих дня. Все суммы — с двумя знаками.

Примеры для проверки

Пример 1
Ввод
60000
Вывод
Налог: 7800.00 руб.
На руки: 52200.00 руб.
За один день: 2372.73 руб.
Пример 2
Ввод
35500.50
Вывод
Налог: 4615.06 руб.
На руки: 30885.44 руб.
За один день: 1403.88 руб.
Подсказка

Налог — отдельная величина. Сумма «на руки» нужна дважды: в выводе и для расчёта за день.

Задача 1.5.9

Скорость в метрах в секунду

★★☆средняя

Спидометр показывает скорость в км/ч. Вводится скорость, выведите её в м/с с двумя знаками. В километре 1000 метров, в часе 3600 секунд.

Примеры для проверки

Пример 1
Ввод
90
Вывод
90.0 км/ч = 25.00 м/с
Пример 2
Ввод
5.4
Вывод
5.4 км/ч = 1.50 м/с
Подсказка

Сначала метры в час, потом деление на число секунд в часе.

Задача 1.5.10

Стоимость поездки на такси

★★☆средняя

Тариф такси: стоимость посадки плюс цена за каждый километр. Вводятся стоимость посадки, цена километра и длина поездки. Выведите стоимость поездки с двумя знаками.

Примеры для проверки

Пример 1
Ввод
99
18.5
12.4
Вывод
Поездка: 328.40 руб.
Пример 2
Ввод
150
20
0
Вывод
Поездка: 150.00 руб.
Подсказка

Умножение выполняется раньше сложения, скобки не нужны.

Задача 1.5.11

Обои для комнаты

★★☆средняя

Вводятся длина, ширина и высота комнаты в метрах. Выведите площадь всех стен (без вычета окон и дверей) с двумя знаками.

Примеры для проверки

Пример 1
Ввод
5
4
2.7
Вывод
Площадь стен: 48.60 кв. м
Пример 2
Ввод
3.2
3.2
2.5
Вывод
Площадь стен: 32.00 кв. м
Подсказка

Стены вместе — это полоса длиной в периметр пола и высотой в высоту комнаты.

Задача 1.5.12

Доход по вкладу за месяц

★★☆средняя

Вводятся сумма вклада и годовая ставка в процентах. Выведите, сколько вклад приносит за месяц — двенадцатую часть годового дохода — с двумя знаками.

Примеры для проверки

Пример 1
Ввод
150000
16
Вывод
За год: 24000.00 руб.
За месяц: 2000.00 руб.
Пример 2
Ввод
10000
7.5
Вывод
За год: 750.00 руб.
За месяц: 62.50 руб.
Подсказка

Годовой доход — процент от вклада. Месячный — от годового.

Задача 1.5.13

Строка или число

★★☆средняя

Программа читает число и выводит два результата: что будет, если «умножить на 3» введённое значение как есть, и что будет после преобразования в целое.

Примеры для проверки

Пример 1
Ввод
7
Вывод
Как строка: 777
Как число: 21
Пример 2
Ввод
12
Вывод
Как строка: 121212
Как число: 36
Подсказка

Сохраните ввод в переменную без преобразования и используйте её дважды: один раз как есть, один раз через int().

Задача 1.5.14

Сколько качать фильм

★★★повышенная

Пользователь вводит размер фильма в гигабайтах и скорость интернета в мегабитах в секунду. Выведите время загрузки в минутах с двумя знаками. В одном гигабайте 1024 мегабайта, в одном мегабайте 8 мегабит.

Примеры для проверки

Пример 1
Ввод
4.7
100
Вывод
Загрузка займёт 6.42 мин
Пример 2
Ввод
1
8
Вывод
Загрузка займёт 17.07 мин
Подсказка

Подвох в единицах: скорость дана в мегабитах, а размер — в гигабайтах. Переведите размер в мегабиты, найдите секунды, затем минуты.

Задача 1.5.15

Хватит ли бензина

★★★повышенная

Вводятся литры в баке, расход на 100 км и длина оставшегося пути. Выведите, сколько километров можно проехать на этом бензине и сколько пути останется после этого (отрицательное число — значит, топлива хватает с запасом). Оба числа — с двумя знаками.

Примеры для проверки

Пример 1
Ввод
18
7.5
300
Вывод
Хватит на: 240.00 км
Останется проехать: 60.00 км
Пример 2
Ввод
40
8
200
Вывод
Хватит на: 500.00 км
Останется проехать: -300.00 км
Подсказка

Сколько «сотен километров» даёт бак: литры / расход. Затем переведите в километры.

§3Как проверить своё решение

  1. Запустите программу и введите значения из колонки «Ввод» — каждое значение отдельной строкой, после каждого Enter.
  2. Сравните то, что напечатала программа, с колонкой «Вывод» — символ в символ: пробелы, двоеточия, количество знаков после точки.
  3. Подсказки input() в примерах не показаны: текст подсказки у каждого свой, проверяется только результат.
  4. Прогоните все примеры, а не только первый: второй обычно ловит ошибку, которую первый пропускает.
Оформление, которое проверяют

Имена переменных называют смысл: total_cost, а не x. Данные — вверху, расчёт — отдельными строками, вывод — в конце. Одно и то же выражение не повторяется: результат сохраняется в переменную и дальше используется по имени.

Задачи к главе 1.5 · Функция input() · Задачник по Python Автор: Макаров Максим Николаевич