Задачник · контрольная работа № 1 · модуль 1

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

Главы 1.1–1.9

КР 1

Контрольная работа № 1
по главам 1.1–1.9

Три варианта по 10 задач и две задачи повышенной сложности по желанию. Задачи с одинаковым номером во всех вариантах проверяют одну тему. Под каждой задачей — примеры ввода и вывода и подсказка: тот же приём на другой задаче.

Главы справочника
1.1–1.9
Вариантов
3
Задач
10 + 2 по желанию
Время
90 минут
Что можно использовать

Условий и циклов нет: каждая задача решается последовательностью строк сверху вниз. Каждое значение вводится отдельной строкой через input(). Вывод должен совпадать с примером символ в символ.

Всего 27 баллов: «5» — 24–27, «4» — 18–23, «3» — 12–17, «2» — 0–11. Задачи 11 и 12 — по желанию: за каждую полностью решённую +2 балла к баллам по дисциплине, на оценку за контрольную не влияют.

Скачать варианты в PDF для печати

§0Что проверяет каждая задача

№Что проверяет задачаБаллыВариант 1Вариант 2Вариант 3
1Переменные и расчёт по формуле2Абонемент в бассейнПроезднойПодписка на онлайн-кинотеатр
2Строки и типы: str(), len(), type(), повтор строки2Ник игрокаЛогин сотрудникаИмя файла отчёта
3F-строки с выражениями2Билеты в киноМеста на парковкеКамеры хранения
4Параметры sep и end2Дата в трёх форматахАртикул товараНомер версии программы
5Ввод int() и float(), расчёт по шагам, формат .2f3Счёт за водуСчёт за электричествоПробег служебной машины
6Множественное присваивание3Вкладки браузераОчередь песенТовары на полке
7Составное присваивание и сравнения3Копилка на наушникиЗаряд телефонаОстаток на складе
8Операции // и %3Конфеты для группыКоманды на турниреФотоальбом
9round() и формат .Nf3Цена за 100 граммЦена литра сокаЦена листа бумаги
10round(), формат .Nf и несколько тем сразу4Итоги практических работРасходы на обедыПробежки за неделю
11Повышенная сложность: чек на три позиции+2 к дисц.Чек магазина канцтоваровСчёт в кафеЗаказ комплектующих
12Повышенная сложность: карточка в рамке+2 к дисц.Бейдж участника конференцииПосадочный талонЭтикетка посылки

§1Вариант 1

Задача 1

Абонемент в бассейн

2 балла

Бассейн продаёт разовые посещения и абонемент на месяц. Вводятся цена одного посещения, цена абонемента и число посещений в месяц — все целые. Выведите, сколько стоят все разовые посещения за месяц, цену абонемента, экономию с абонементом за месяц и за год. Экономия может быть отрицательной — тогда абонемент невыгоден.

Примеры

Пример 1
Ввод
450
3200
10
Вывод
Разовые посещения: 4500 руб.
Абонемент: 3200 руб.
Экономия за месяц: 1300 руб.
Экономия за год: 15600 руб.
Пример 2
Ввод
500
3500
4
Вывод
Разовые посещения: 2000 руб.
Абонемент: 3500 руб.
Экономия за месяц: -1500 руб.
Экономия за год: -18000 руб.
Подсказка: тот же приём в другой задаче
примердругая задача
lunch = 180 * 2
left = 500 - lunch
print("Обеды за день:", lunch)
print("Остаток от 500:", left)
print("За неделю:", lunch * 7)
Выводрезультат запуска
Обеды за день: 360
Остаток от 500: 140
За неделю: 2520
Задача 2

Ник игрока

2 балла

Игра составляет ник из имени игрока и года рождения: имя, знак подчёркивания, год. Вводятся имя и год рождения. Год преобразуйте в целое число через int(). Соберите ник сложением строк и выведите: рамку из знаков = длиной с ник, сам ник, такую же рамку, длину ника и тип переменной с годом.

Примеры

Пример 1
Ввод
Denis
2008
Вывод
==========
Denis_2008
==========
Длина ника: 10
<class 'int'>
Пример 2
Ввод
Kira
2009
Вывод
=========
Kira_2009
=========
Длина ника: 9
<class 'int'>
Подсказка: тот же приём в другой задаче
примердругая задача
word = "Python"
code = word + "-" + str(3)
print(code, len(code))
print("~" * len(word))
Выводрезультат запуска
Python-3 8
~~~~~~
Задача 3

Билеты в кино

2 балла

Кинотеатр печатает подтверждение покупки. Вводятся название фильма, номер ряда, номер первого места, число билетов и цена одного билета — все числа целые. Места идут подряд. Выведите две строки, как в примерах, с помощью f-строк. Номер последнего места и сумму к оплате посчитайте выражениями прямо в фигурных скобках.

Примеры

Пример 1
Ввод
Дюна
7
12
3
450
Вывод
«Дюна», ряд 7, места с 12 по 14
3 шт. по 450 руб., к оплате 1350 руб.
Пример 2
Ввод
Чебурашка
2
5
4
300
Вывод
«Чебурашка», ряд 2, места с 5 по 8
4 шт. по 300 руб., к оплате 1200 руб.
Подсказка: тот же приём в другой задаче
примердругая задача
apples = 5
price = 30
print(f"{apples} кг, итого {apples * price} руб.")
Выводрезультат запуска
5 кг, итого 150 руб.
Задача 4

Дата в трёх форматах

2 балла

Вводятся день, месяц и год — как текст, без преобразования в числа. Выведите три строки: дату через точку (день.месяц.год), дату через дефис в обратном порядке (год-месяц-день) и строку «Сохранено: день/месяц/год». Третью строку напечатайте двумя вызовами print(): первый выводит слово «Сохранено:», второй — дату. Каждую часть даты передавайте в print() отдельным аргументом, склеивать строки плюсом нельзя.

Примеры

Пример 1
Ввод
05
10
2026
Вывод
05.10.2026
2026-10-05
Сохранено: 05/10/2026
Пример 2
Ввод
31
12
2025
Вывод
31.12.2025
2025-12-31
Сохранено: 31/12/2025
Подсказка: тот же приём в другой задаче
примердругая задача
print(10, 20, 30, sep=":")
print("Ответ", end="! ")
print("x", "y", sep="")
Выводрезультат запуска
10:20:30
Ответ! xy
Задача 5

Счёт за воду

3 балла

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

Примеры

Пример 1
Ввод
1254
1263
52.3
120
Вывод
Расход, куб. м: 9
Стоимость воды: 470.70 руб.
К оплате: 590.70 руб.
В среднем в день: 0.30 куб. м
Пример 2
Ввод
800
815
49.9
95.5
Вывод
Расход, куб. м: 15
Стоимость воды: 748.50 руб.
К оплате: 844.00 руб.
В среднем в день: 0.50 куб. м
Подсказка: тот же приём в другой задаче
примердругая задача
weight = float("2.5")
boxes = int("4")
total = weight * boxes
print(f"Груз: {total:.2f} кг")
Выводрезультат запуска
Груз: 10.00 кг
Задача 6

Вкладки браузера

3 балла

В браузере открыты три вкладки, слева направо. Вводятся их названия. Выведите порядок вкладок, затем поменяйте местами первую и третью вкладку и выведите порядок ещё раз. После этого последнюю вкладку перетаскивают в начало, остальные сдвигаются вправо. Выведите итоговый порядок. Каждое изменение порядка запишите одной строкой множественного присваивания, без дополнительных переменных.

Примеры

Пример 1
Ввод
Почта
Карты
Новости
Вывод
Было: Почта Карты Новости
Обмен крайних: Новости Карты Почта
Последняя в начало: Почта Новости Карты
Пример 2
Ввод
GitHub
StackOverflow
YouTube
Вывод
Было: GitHub StackOverflow YouTube
Обмен крайних: YouTube StackOverflow GitHub
Последняя в начало: GitHub YouTube StackOverflow
Подсказка: тот же приём в другой задаче
примердругая задача
a, b, c, d = "A", "B", "C", "D"
a, d = d, a
print(a, b, c, d)
a, b, c, d = d, a, b, c
print(a, b, c, d)
Выводрезультат запуска
D B C A
A D B C
Задача 7

Копилка на наушники

3 балла

Студент копит на наушники. Вводятся сумма в копилке, сколько он добавляет каждую неделю и цена наушников — все целые. Три недели подряд студент пополняет копилку: каждое пополнение — отдельная строка составного присваивания. Выведите сумму после трёх недель, хватает ли денег на наушники и совпадает ли сумма с ценой точно. Затем студент покупает наушники: уменьшите сумму составным присваиванием и выведите остаток. Покупку считайте в любом случае, тогда остаток может быть отрицательным — это долг.

Примеры

Пример 1
Ввод
2500
1500
6000
Вывод
Через три недели: 7000
Хватает на наушники: True
Ровно на покупку: False
Остаток после покупки: 1000
Пример 2
Ввод
1000
800
5000
Вывод
Через три недели: 3400
Хватает на наушники: False
Ровно на покупку: False
Остаток после покупки: -1600
Подсказка: тот же приём в другой задаче
примердругая задача
score = 10
score += 7
score -= 2
print(score, score > 12, score == 20)
Выводрезультат запуска
15 True False
Задача 8

Конфеты для группы

3 балла

Куратор принёс конфеты для группы и раздаёт их поровну, целыми конфетами. Вводятся число конфет и число студентов. Выведите, сколько конфет получит каждый, сколько останется у куратора, удалось ли раздать все конфеты без остатка и чётное ли число конфет у каждого студента.

Примеры

Пример 1
Ввод
100
24
Вывод
Каждому: 4
Осталось у куратора: 4
Раздали без остатка: False
Каждому чётное число: True
Пример 2
Ввод
75
25
Вывод
Каждому: 3
Осталось у куратора: 0
Раздали без остатка: True
Каждому чётное число: False
Подсказка: тот же приём в другой задаче
примердругая задача
pencils = 23
print(pencils // 5, pencils % 5)
print(14 % 2 == 0, 15 % 2 == 0)
Выводрезультат запуска
4 3
True False
Задача 9

Цена за 100 грамм

3 балла

Чтобы сравнивать упаковки разного веса, магазин печатает на ценнике цену за 100 грамм. Вводятся цена упаковки (дробная) и вес упаковки в граммах (целый). Выведите цену за 100 г с двумя знаками после точки, цену за килограмм, округлённую функцией round() до десятых, и цену упаковки, округлённую round() до целых рублей.

Примеры

Пример 1
Ввод
249.99
380
Вывод
За 100 г: 65.79 руб.
За 1 кг: 657.9 руб.
Упаковка, округлённо: 250 руб.
Пример 2
Ввод
89.4
900
Вывод
За 100 г: 9.93 руб.
За 1 кг: 99.3 руб.
Упаковка, округлённо: 89 руб.
Подсказка: тот же приём в другой задаче
примердругая задача
one = 250 / 6
print(f"{one:.2f}")
print(round(one, 1), round(one))
Выводрезультат запуска
41.67
41.7 42
Задача 10

Итоги практических работ

4 балла

За модуль студент сдал пять практических работ, каждая оценивается максимум в 10 баллов. Вводятся баллы за пять работ (дробные, например 8.5) и минимальная сумма для зачёта (целая). Выведите:
— сумму баллов с одним знаком после точки и максимум 50, как в примерах;
— средний балл с двумя знаками после точки;
— средний балл, округлённый функцией round() до десятых;
— сколько процентов от максимума набрано, с одним знаком после точки;
— получен ли зачёт: сумма не меньше минимальной;
— последней строкой баллы через « + », затем « = » и сумму, округлённую round() до десятых. Эту строку напечатайте двумя вызовами print().

Примеры

Пример 1
Ввод
8.5
7
9.3
6.4
8.1
35
Вывод
Сумма: 39.3 из 50
Средний балл: 7.86
Округлённо: 7.9
Выполнено: 78.6%
Зачёт: True
8.5 + 7.0 + 9.3 + 6.4 + 8.1 = 39.3
Пример 2
Ввод
5.5
6
7.2
4.4
6.3
35
Вывод
Сумма: 29.4 из 50
Средний балл: 5.88
Округлённо: 5.9
Выполнено: 58.8%
Зачёт: False
5.5 + 6.0 + 7.2 + 4.4 + 6.3 = 29.4
Подсказка: тот же приём в другой задаче
примердругая задача
t1 = 20.5
t2 = 22.1
t3 = 19.4
average = (t1 + t2 + t3) / 3
print(f"Среднее: {average:.1f}")
print(t1, t2, t3, sep=" | ", end=" -> ")
print(round(average, 2))
Выводрезультат запуска
Среднее: 20.7
20.5 | 22.1 | 19.4 -> 20.67

Задачи повышенной сложности · вариант 1

По желанию, после основных. Каждая полностью решённая задача — +2 балла к баллам по дисциплине.

Задача 11

Чек магазина канцтоваров

+2 к дисциплине

Магазин канцтоваров печатает чек на три позиции. Вводятся данные трёх позиций: для каждой — название, цена (дробная) и количество (целое). Затем вводятся скидка в процентах и сумма, начиная с которой доставка бесплатная (обе целые). Выведите чек, как в примерах:
— три строки позиций: название, количество, цена и стоимость позиции, деньги — с двумя знаками после точки;
— разделитель из 30 дефисов, получите его повтором строки;
— сумму без скидки, размер скидки в рублях и сумму к оплате — с двумя знаками;
— сколько всего единиц в заказе;
— среднюю цену одной единицы после скидки, округлённую функцией round() до сотых;
— бесплатна ли доставка: сумма к оплате не меньше порога.

Примеры

Пример 1
Ввод
Тетрадь
45.5
6
Ручка
32.9
4
Рюкзак
1890
1
10
2000
Вывод
Тетрадь: 6 x 45.50 = 273.00
Ручка: 4 x 32.90 = 131.60
Рюкзак: 1 x 1890.00 = 1890.00
------------------------------
Сумма: 2294.60 руб.
Скидка 10%: 229.46 руб.
К оплате: 2065.14 руб.
Количество, всего: 11
Средняя цена единицы: 187.74 руб.
Бесплатная доставка: True
Пример 2
Ввод
Маркер
89.9
3
Папка
55
2
Пенал
349.5
1
5
2000
Вывод
Маркер: 3 x 89.90 = 269.70
Папка: 2 x 55.00 = 110.00
Пенал: 1 x 349.50 = 349.50
------------------------------
Сумма: 729.20 руб.
Скидка 5%: 36.46 руб.
К оплате: 692.74 руб.
Количество, всего: 6
Средняя цена единицы: 115.46 руб.
Бесплатная доставка: False
Подсказка: тот же приём в другой задаче
примердругая задача
salary = 40000
bonus = salary * 15 / 100
print(f"Премия: {bonus:.2f}")
print("=" * 12)
Выводрезультат запуска
Премия: 6000.00
============
Задача 12

Бейдж участника конференции

+2 к дисциплине

Конференция печатает бейджи участников в рамке из символов. Вводятся имя, фамилия, компания, город, роль участника, номер дня конференции (целое) и ширина текста внутри рамки (целое число). Ширина всегда не меньше длины самой длинной строки. Выведите карточку, как в примерах:
— верхняя и нижняя граница: знак +, дефисы на ширину плюс 2, знак +;
— три строки текста: | , текст, пробелы до заданной ширины, |. Число пробелов посчитайте через len(), сами пробелы получите повтором строки;
— строки текста: «имя фамилия», «компания, город», «роль, день N»;
— под рамкой — сколько пробелов добавлено в каждую из трёх строк;
— помещается ли карточка в строку из 40 символов: полная ширина карточки — это ширина текста плюс 4.

Примеры

Пример 1
Ввод
Анна
Смирнова
Яндекс
Москва
Докладчик
2
20
Вывод
+----------------------+
| Анна Смирнова        |
| Яндекс, Москва       |
| Докладчик, день 2    |
+----------------------+
Добавлено пробелов: 7 6 3
Помещается в 40 символов: True
Пример 2
Ввод
Лев
Ким
1С
Казань
Слушатель
1
18
Вывод
+--------------------+
| Лев Ким            |
| 1С, Казань         |
| Слушатель, день 1  |
+--------------------+
Добавлено пробелов: 11 8 1
Помещается в 40 символов: True
Подсказка: тот же приём в другой задаче
примердругая задача
name = "Кот"
print("[" + name + "." * (8 - len(name)) + "]")
print("[" + "Барсик" + "." * (8 - len("Барсик")) + "]")
Выводрезультат запуска
[Кот.....]
[Барсик..]

§2Вариант 2

Задача 1

Проездной

2 балла

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

Примеры

Пример 1
Ввод
70
2900
46
Вывод
Поездки по отдельности: 3220 руб.
Проездной: 2900 руб.
Экономия за месяц: 320 руб.
Экономия за год: 3840 руб.
Пример 2
Ввод
65
2500
30
Вывод
Поездки по отдельности: 1950 руб.
Проездной: 2500 руб.
Экономия за месяц: -550 руб.
Экономия за год: -6600 руб.
Подсказка: тот же приём в другой задаче
примердругая задача
lunch = 180 * 2
left = 500 - lunch
print("Обеды за день:", lunch)
print("Остаток от 500:", left)
print("За неделю:", lunch * 7)
Выводрезультат запуска
Обеды за день: 360
Остаток от 500: 140
За неделю: 2520
Задача 2

Логин сотрудника

2 балла

Компания составляет логин из фамилии сотрудника и номера отдела: фамилия, точка, номер отдела. Вводятся фамилия и номер отдела. Номер преобразуйте в целое число через int(). Соберите логин сложением строк и выведите: рамку из знаков * длиной с логин, сам логин, такую же рамку, длину логина и тип переменной с номером отдела.

Примеры

Пример 1
Ввод
ivanov
12
Вывод
*********
ivanov.12
*********
Длина логина: 9
<class 'int'>
Пример 2
Ввод
li
7
Вывод
****
li.7
****
Длина логина: 4
<class 'int'>
Подсказка: тот же приём в другой задаче
примердругая задача
word = "Python"
code = word + "-" + str(3)
print(code, len(code))
print("~" * len(word))
Выводрезультат запуска
Python-3 8
~~~~~~
Задача 3

Места на парковке

2 балла

Парковка торгового центра печатает подтверждение брони. Вводятся название парковки, номер этажа, номер первого места, число мест и цена одного места за день — все числа целые. Места идут подряд. Выведите две строки, как в примерах, с помощью f-строк. Номер последнего места и сумму к оплате посчитайте выражениями прямо в фигурных скобках.

Примеры

Пример 1
Ввод
Север
2
41
2
350
Вывод
«Север», этаж 2, места с 41 по 42
2 шт. по 350 руб., к оплате 700 руб.
Пример 2
Ввод
Галерея
-1
8
3
500
Вывод
«Галерея», этаж -1, места с 8 по 10
3 шт. по 500 руб., к оплате 1500 руб.
Подсказка: тот же приём в другой задаче
примердругая задача
apples = 5
price = 30
print(f"{apples} кг, итого {apples * price} руб.")
Выводрезультат запуска
5 кг, итого 150 руб.
Задача 4

Артикул товара

2 балла

Артикул товара состоит из трёх частей: категории, серии и номера. Вводятся эти три части как текст. Выведите три строки: артикул через дефис, артикул через косую черту и строку «Код для сканера: » с тремя частями без разделителей. Третью строку напечатайте двумя вызовами print(): первый выводит слова «Код для сканера:», второй — части артикула. Каждую часть передавайте в print() отдельным аргументом, склеивать строки плюсом нельзя.

Примеры

Пример 1
Ввод
KB
A7
0042
Вывод
KB-A7-0042
KB/A7/0042
Код для сканера: KBA70042
Пример 2
Ввод
MS
X2
1150
Вывод
MS-X2-1150
MS/X2/1150
Код для сканера: MSX21150
Подсказка: тот же приём в другой задаче
примердругая задача
print(10, 20, 30, sep=":")
print("Ответ", end="! ")
print("x", "y", sep="")
Выводрезультат запуска
10:20:30
Ответ! xy
Задача 5

Счёт за электричество

3 балла

Счётчик электричества показывает, сколько киловатт-часов израсходовано с момента установки. Вводятся показания в прошлом месяце и в этом (целые), цена одного киловатт-часа и плата за обслуживание (дробные). Выведите расход за месяц, стоимость электричества, сумму к оплате вместе с платой за обслуживание и средний расход в день, если в месяце 30 дней. Денежные суммы и расход в день выводите с двумя знаками после точки.

Примеры

Пример 1
Ввод
15420
15637
6.43
85
Вывод
Расход, кВт·ч: 217
Стоимость электричества: 1395.31 руб.
К оплате: 1480.31 руб.
В среднем в день: 7.23 кВт·ч
Пример 2
Ввод
9800
9950
5.9
70.5
Вывод
Расход, кВт·ч: 150
Стоимость электричества: 885.00 руб.
К оплате: 955.50 руб.
В среднем в день: 5.00 кВт·ч
Подсказка: тот же приём в другой задаче
примердругая задача
weight = float("2.5")
boxes = int("4")
total = weight * boxes
print(f"Груз: {total:.2f} кг")
Выводрезультат запуска
Груз: 10.00 кг
Задача 6

Очередь песен

3 балла

В плеере в очереди стоят три песни. Вводятся их названия в порядке воспроизведения. Выведите очередь, затем поменяйте местами вторую и третью песню и выведите очередь ещё раз. После этого первую песню переносят в конец очереди, остальные сдвигаются вперёд. Выведите итоговую очередь. Каждое изменение очереди запишите одной строкой множественного присваивания, без дополнительных переменных.

Примеры

Пример 1
Ввод
Кукушка
Звезда
Морячка
Вывод
Было: Кукушка Звезда Морячка
Обмен второй и третьей: Кукушка Морячка Звезда
Первая в конец: Морячка Звезда Кукушка
Пример 2
Ввод
Intro
Believe
Outro
Вывод
Было: Intro Believe Outro
Обмен второй и третьей: Intro Outro Believe
Первая в конец: Outro Believe Intro
Подсказка: тот же приём в другой задаче
примердругая задача
a, b, c, d = "A", "B", "C", "D"
a, d = d, a
print(a, b, c, d)
a, b, c, d = d, a, b, c
print(a, b, c, d)
Выводрезультат запуска
D B C A
A D B C
Задача 7

Заряд телефона

3 балла

Телефон разряжается во время игры. Вводятся начальный заряд в процентах, сколько процентов уходит за час игры и сколько процентов добавляет зарядка — все целые. Три часа подряд идёт игра: каждый час — отдельная строка составного присваивания. Выведите заряд после трёх часов, остался ли заряд не ниже 20 процентов и разрядился ли телефон полностью, то есть заряд не больше нуля. Затем телефон ставят на зарядку: увеличьте заряд составным присваиванием и выведите его.

Примеры

Пример 1
Ввод
90
18
40
Вывод
Через три часа: 36
Не ниже 20%: True
Телефон разрядился: False
После зарядки: 76
Пример 2
Ввод
60
15
50
Вывод
Через три часа: 15
Не ниже 20%: False
Телефон разрядился: False
После зарядки: 65
Подсказка: тот же приём в другой задаче
примердругая задача
score = 10
score += 7
score -= 2
print(score, score > 12, score == 20)
Выводрезультат запуска
15 True False
Задача 8

Команды на турнире

3 балла

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

Примеры

Пример 1
Ввод
47
5
Вывод
Полных команд: 9
Без команды: 2
Все в командах: False
Команды разбиваются на пары: False
Пример 2
Ввод
42
6
Вывод
Полных команд: 7
Без команды: 0
Все в командах: True
Команды разбиваются на пары: False
Подсказка: тот же приём в другой задаче
примердругая задача
pencils = 23
print(pencils // 5, pencils % 5)
print(14 % 2 == 0, 15 % 2 == 0)
Выводрезультат запуска
4 3
True False
Задача 9

Цена литра сока

3 балла

Чтобы сравнивать бутылки разного объёма, магазин печатает на ценнике цену за 100 миллилитров. Вводятся цена бутылки (дробная) и объём в миллилитрах (целый). Выведите цену за 100 мл с двумя знаками после точки, цену за литр, округлённую функцией round() до десятых, и цену бутылки, округлённую round() до целых рублей.

Примеры

Пример 1
Ввод
159.9
970
Вывод
За 100 мл: 16.48 руб.
За 1 л: 164.8 руб.
Бутылка, округлённо: 160 руб.
Пример 2
Ввод
74.6
330
Вывод
За 100 мл: 22.61 руб.
За 1 л: 226.1 руб.
Бутылка, округлённо: 75 руб.
Подсказка: тот же приём в другой задаче
примердругая задача
one = 250 / 6
print(f"{one:.2f}")
print(round(one, 1), round(one))
Выводрезультат запуска
41.67
41.7 42
Задача 10

Расходы на обеды

4 балла

Студент записывает, сколько потратил на обеды за пять учебных дней. Вводятся траты за пять дней (дробные, например 245.5) и бюджет на эти пять дней (целый). Выведите:
— сумму трат с двумя знаками после точки и бюджет, как в примерах;
— среднюю трату за день с двумя знаками после точки;
— среднюю трату, округлённую функцией round() до целых рублей;
— сколько процентов бюджета потрачено, с одним знаком после точки;
— уложился ли студент в бюджет: сумма не больше бюджета;
— последней строкой траты через « + », затем « = » и сумму, округлённую round() до сотых. Эту строку напечатайте двумя вызовами print().

Примеры

Пример 1
Ввод
245.5
310
198.4
275.3
262.1
1500
Вывод
Потрачено: 1291.30 из 1500 руб.
В среднем за день: 258.26 руб.
Округлённо: 258
Израсходовано бюджета: 86.1%
Уложился в бюджет: True
245.5 + 310.0 + 198.4 + 275.3 + 262.1 = 1291.3
Пример 2
Ввод
350
412.8
299.9
380
321.6
1500
Вывод
Потрачено: 1764.30 из 1500 руб.
В среднем за день: 352.86 руб.
Округлённо: 353
Израсходовано бюджета: 117.6%
Уложился в бюджет: False
350.0 + 412.8 + 299.9 + 380.0 + 321.6 = 1764.3
Подсказка: тот же приём в другой задаче
примердругая задача
t1 = 20.5
t2 = 22.1
t3 = 19.4
average = (t1 + t2 + t3) / 3
print(f"Среднее: {average:.1f}")
print(t1, t2, t3, sep=" | ", end=" -> ")
print(round(average, 2))
Выводрезультат запуска
Среднее: 20.7
20.5 | 22.1 | 19.4 -> 20.67

Задачи повышенной сложности · вариант 2

По желанию, после основных. Каждая полностью решённая задача — +2 балла к баллам по дисциплине.

Задача 11

Счёт в кафе

+2 к дисциплине

Кафе печатает счёт на три позиции. Вводятся данные трёх блюд: для каждой — название, цена (дробная) и количество (целое). Затем вводятся скидка по карте гостя в процентах и сумма, начиная с которой гостю дарят десерт (обе целые). Выведите чек, как в примерах:
— три строки позиций: название, количество, цена и стоимость позиции, деньги — с двумя знаками после точки;
— разделитель из 30 дефисов, получите его повтором строки;
— сумму без скидки, размер скидки в рублях и сумму к оплате — с двумя знаками;
— сколько всего единиц в заказе;
— среднюю цену одной единицы после скидки, округлённую функцией round() до сотых;
— положен ли десерт в подарок: сумма к оплате не меньше порога.

Примеры

Пример 1
Ввод
Борщ
289
2
Пельмени
349.5
2
Морс
119.9
3
10
1500
Вывод
Борщ: 2 x 289.00 = 578.00
Пельмени: 2 x 349.50 = 699.00
Морс: 3 x 119.90 = 359.70
------------------------------
Сумма: 1636.70 руб.
Скидка 10%: 163.67 руб.
К оплате: 1473.03 руб.
Порций, всего: 7
Средняя цена единицы: 210.43 руб.
Десерт в подарок: False
Пример 2
Ввод
Салат
245
1
Паста
410.5
2
Чай
99.9
4
5
1000
Вывод
Салат: 1 x 245.00 = 245.00
Паста: 2 x 410.50 = 821.00
Чай: 4 x 99.90 = 399.60
------------------------------
Сумма: 1465.60 руб.
Скидка 5%: 73.28 руб.
К оплате: 1392.32 руб.
Порций, всего: 7
Средняя цена единицы: 198.9 руб.
Десерт в подарок: True
Подсказка: тот же приём в другой задаче
примердругая задача
salary = 40000
bonus = salary * 15 / 100
print(f"Премия: {bonus:.2f}")
print("=" * 12)
Выводрезультат запуска
Премия: 6000.00
============
Задача 12

Посадочный талон

+2 к дисциплине

Авиакомпания печатает посадочный талон в рамке из символов. Вводятся имя, фамилия, город вылета, город прилёта, номер рейса, номер ряда (целое) и ширина текста внутри рамки (целое число). Ширина всегда не меньше длины самой длинной строки. Выведите карточку, как в примерах:
— верхняя и нижняя граница: знак +, дефисы на ширину плюс 2, знак +;
— три строки текста: | , текст, пробелы до заданной ширины, |. Число пробелов посчитайте через len(), сами пробелы получите повтором строки;
— строки текста: «имя фамилия», «откуда - куда», «Рейс номер, ряд N»;
— под рамкой — сколько пробелов добавлено в каждую из трёх строк;
— помещается ли карточка в строку из 40 символов: полная ширина карточки — это ширина текста плюс 4.

Примеры

Пример 1
Ввод
Иван
Петров
Москва
Сочи
SU1120
14
20
Вывод
+----------------------+
| Иван Петров          |
| Москва - Сочи        |
| Рейс SU1120, ряд 14  |
+----------------------+
Добавлено пробелов: 9 7 1
Помещается в 40 символов: True
Пример 2
Ввод
Ли
Мин
Казань
Санкт-Петербург
DP405
3
24
Вывод
+--------------------------+
| Ли Мин                   |
| Казань - Санкт-Петербург |
| Рейс DP405, ряд 3        |
+--------------------------+
Добавлено пробелов: 18 0 7
Помещается в 40 символов: True
Подсказка: тот же приём в другой задаче
примердругая задача
name = "Кот"
print("[" + name + "." * (8 - len(name)) + "]")
print("[" + "Барсик" + "." * (8 - len("Барсик")) + "]")
Выводрезультат запуска
[Кот.....]
[Барсик..]

§3Вариант 3

Задача 1

Подписка на онлайн-кинотеатр

2 балла

Онлайн-кинотеатр продаёт фильмы по отдельности и подписку на месяц. Вводятся цена одного фильма, цена подписки и число фильмов в месяц — все целые. Выведите, сколько стоят все фильмы по отдельности, цену подписки, экономию с подпиской за месяц и за год. Экономия может быть отрицательной — тогда подписка невыгодна.

Примеры

Пример 1
Ввод
149
399
6
Вывод
Фильмы по отдельности: 894 руб.
Подписка: 399 руб.
Экономия за месяц: 495 руб.
Экономия за год: 5940 руб.
Пример 2
Ввод
199
499
2
Вывод
Фильмы по отдельности: 398 руб.
Подписка: 499 руб.
Экономия за месяц: -101 руб.
Экономия за год: -1212 руб.
Подсказка: тот же приём в другой задаче
примердругая задача
lunch = 180 * 2
left = 500 - lunch
print("Обеды за день:", lunch)
print("Остаток от 500:", left)
print("За неделю:", lunch * 7)
Выводрезультат запуска
Обеды за день: 360
Остаток от 500: 140
За неделю: 2520
Задача 2

Имя файла отчёта

2 балла

Программа сохраняет отчёт в файл, имя которого состоит из названия отчёта, приставки _v и номера версии. Вводятся название и номер версии. Номер преобразуйте в целое число через int(). Соберите имя файла сложением строк и выведите: рамку из знаков - длиной с имя файла, само имя, такую же рамку, длину имени и тип переменной с номером версии.

Примеры

Пример 1
Ввод
sales
3
Вывод
--------
sales_v3
--------
Длина имени: 8
<class 'int'>
Пример 2
Ввод
budget2026
12
Вывод
--------------
budget2026_v12
--------------
Длина имени: 14
<class 'int'>
Подсказка: тот же приём в другой задаче
примердругая задача
word = "Python"
code = word + "-" + str(3)
print(code, len(code))
print("~" * len(word))
Выводрезультат запуска
Python-3 8
~~~~~~
Задача 3

Камеры хранения

2 балла

Камера хранения на вокзале печатает квитанцию. Вводятся название вокзала, номер секции, номер первой ячейки, число ячеек и цена одной ячейки за сутки — все числа целые. Ячейки идут подряд. Выведите две строки, как в примерах, с помощью f-строк. Номер последней ячейки и сумму к оплате посчитайте выражениями прямо в фигурных скобках.

Примеры

Пример 1
Ввод
Казанский
4
17
2
400
Вывод
«Казанский», секция 4, ячейки с 17 по 18
2 шт. по 400 руб., к оплате 800 руб.
Пример 2
Ввод
Ладожский
1
3
3
350
Вывод
«Ладожский», секция 1, ячейки с 3 по 5
3 шт. по 350 руб., к оплате 1050 руб.
Подсказка: тот же приём в другой задаче
примердругая задача
apples = 5
price = 30
print(f"{apples} кг, итого {apples * price} руб.")
Выводрезультат запуска
5 кг, итого 150 руб.
Задача 4

Номер версии программы

2 балла

Номер версии программы состоит из трёх частей: основной номер, дополнительный номер и номер исправления. Вводятся эти три части как текст. Выведите три строки: версию через точку, версию через знак подчёркивания и строку «Сборка: » с тремя частями без разделителей. Третью строку напечатайте двумя вызовами print(): первый выводит слово «Сборка:», второй — части версии. Каждую часть передавайте в print() отдельным аргументом, склеивать строки плюсом нельзя.

Примеры

Пример 1
Ввод
3
12
4
Вывод
3.12.4
3_12_4
Сборка: 3124
Пример 2
Ввод
1
0
27
Вывод
1.0.27
1_0_27
Сборка: 1027
Подсказка: тот же приём в другой задаче
примердругая задача
print(10, 20, 30, sep=":")
print("Ответ", end="! ")
print("x", "y", sep="")
Выводрезультат запуска
10:20:30
Ответ! xy
Задача 5

Пробег служебной машины

3 балла

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

Примеры

Пример 1
Ввод
48210
49485
9.6
3500
Вывод
Пробег, км: 1275
Стоимость поездок: 12240.00 руб.
Всего расходов: 15740.00 руб.
В среднем в день: 42.50 км
Пример 2
Ввод
12000
12340
11.25
2800.5
Вывод
Пробег, км: 340
Стоимость поездок: 3825.00 руб.
Всего расходов: 6625.50 руб.
В среднем в день: 11.33 км
Подсказка: тот же приём в другой задаче
примердругая задача
weight = float("2.5")
boxes = int("4")
total = weight * boxes
print(f"Груз: {total:.2f} кг")
Выводрезультат запуска
Груз: 10.00 кг
Задача 6

Товары на полке

3 балла

На полке магазина стоят три товара, слева направо. Вводятся их названия. Выведите порядок товаров, затем поменяйте местами первый и второй товар и выведите порядок ещё раз. После этого последний товар переставляют в начало полки, остальные сдвигаются вправо. Выведите итоговый порядок. Каждое изменение порядка запишите одной строкой множественного присваивания, без дополнительных переменных.

Примеры

Пример 1
Ввод
Молоко
Кефир
Сметана
Вывод
Было: Молоко Кефир Сметана
Обмен первых двух: Кефир Молоко Сметана
Последний в начало: Сметана Кефир Молоко
Пример 2
Ввод
Чай
Кофе
Какао
Вывод
Было: Чай Кофе Какао
Обмен первых двух: Кофе Чай Какао
Последний в начало: Какао Кофе Чай
Подсказка: тот же приём в другой задаче
примердругая задача
a, b, c, d = "A", "B", "C", "D"
a, d = d, a
print(a, b, c, d)
a, b, c, d = d, a, b, c
print(a, b, c, d)
Выводрезультат запуска
D B C A
A D B C
Задача 7

Остаток на складе

3 балла

Склад каждый день отгружает одинаковое количество коробок с товаром. Вводятся остаток на складе, сколько коробок отгружают за день и размер новой поставки — все целые. Три дня подряд идёт отгрузка: каждый день — отдельная строка составного присваивания. Выведите остаток после трёх дней, больше ли он неприкосновенного запаса в 50 коробок и закончился ли товар, то есть остаток не больше нуля. Отгрузку считайте в любом случае, тогда остаток может быть отрицательным — это недостача. Затем приходит поставка: увеличьте остаток составным присваиванием и выведите его.

Примеры

Пример 1
Ввод
400
80
200
Вывод
Через три дня: 160
Больше запаса в 50: True
Товар закончился: False
После поставки: 360
Пример 2
Ввод
200
50
300
Вывод
Через три дня: 50
Больше запаса в 50: False
Товар закончился: False
После поставки: 350
Подсказка: тот же приём в другой задаче
примердругая задача
score = 10
score += 7
score -= 2
print(score, score > 12, score == 20)
Выводрезультат запуска
15 True False
Задача 8

Фотоальбом

3 балла

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

Примеры

Пример 1
Ввод
130
8
Вывод
Полных страниц: 16
Лишних фото: 2
Все страницы полные: False
Целые развороты: True
Пример 2
Ввод
84
12
Вывод
Полных страниц: 7
Лишних фото: 0
Все страницы полные: True
Целые развороты: False
Подсказка: тот же приём в другой задаче
примердругая задача
pencils = 23
print(pencils // 5, pencils % 5)
print(14 % 2 == 0, 15 % 2 == 0)
Выводрезультат запуска
4 3
True False
Задача 9

Цена листа бумаги

3 балла

Офис сравнивает пачки бумаги разного размера по цене за 100 листов. Вводятся цена пачки (дробная) и число листов в пачке (целое). Выведите цену 100 листов с двумя знаками после точки, цену 1000 листов, округлённую функцией round() до десятых, и цену пачки, округлённую round() до целых рублей.

Примеры

Пример 1
Ввод
389.9
500
Вывод
За 100 листов: 77.98 руб.
За 1000 листов: 779.8 руб.
Пачка, округлённо: 390 руб.
Пример 2
Ввод
129.4
250
Вывод
За 100 листов: 51.76 руб.
За 1000 листов: 517.6 руб.
Пачка, округлённо: 129 руб.
Подсказка: тот же приём в другой задаче
примердругая задача
one = 250 / 6
print(f"{one:.2f}")
print(round(one, 1), round(one))
Выводрезультат запуска
41.67
41.7 42
Задача 10

Пробежки за неделю

4 балла

Бегун записывает длину пяти пробежек за неделю. Вводятся пять расстояний в километрах (дробные, например 5.2) и цель на неделю в километрах (целая). Выведите:
— сумму километров с одним знаком после точки и цель, как в примерах;
— среднюю длину пробежки с двумя знаками после точки;
— среднюю длину, округлённую функцией round() до десятых;
— сколько процентов цели выполнено, с одним знаком после точки;
— выполнена ли цель: сумма не меньше цели;
— последней строкой расстояния через « + », затем « = » и сумму, округлённую round() до десятых. Эту строку напечатайте двумя вызовами print().

Примеры

Пример 1
Ввод
5.2
7.5
6.3
10.1
4.6
30
Вывод
Пробежал: 33.7 из 30 км
Средняя пробежка: 6.74 км
Округлённо: 6.7
Цель выполнена на 112.3%
Цель выполнена: True
5.2 + 7.5 + 6.3 + 10.1 + 4.6 = 33.7
Пример 2
Ввод
3.4
4
5.1
3.8
2.9
25
Вывод
Пробежал: 19.2 из 25 км
Средняя пробежка: 3.84 км
Округлённо: 3.8
Цель выполнена на 76.8%
Цель выполнена: False
3.4 + 4.0 + 5.1 + 3.8 + 2.9 = 19.2
Подсказка: тот же приём в другой задаче
примердругая задача
t1 = 20.5
t2 = 22.1
t3 = 19.4
average = (t1 + t2 + t3) / 3
print(f"Среднее: {average:.1f}")
print(t1, t2, t3, sep=" | ", end=" -> ")
print(round(average, 2))
Выводрезультат запуска
Среднее: 20.7
20.5 | 22.1 | 19.4 -> 20.67

Задачи повышенной сложности · вариант 3

По желанию, после основных. Каждая полностью решённая задача — +2 балла к баллам по дисциплине.

Задача 11

Заказ комплектующих

+2 к дисциплине

Интернет-магазин комплектующих печатает чек на три позиции. Вводятся данные трёх товаров: для каждой — название, цена (дробная) и количество (целое). Затем вводятся скидка по промокоду в процентах и сумма, начиная с которой доставка бесплатная (обе целые). Выведите чек, как в примерах:
— три строки позиций: название, количество, цена и стоимость позиции, деньги — с двумя знаками после точки;
— разделитель из 30 дефисов, получите его повтором строки;
— сумму без скидки, размер скидки в рублях и сумму к оплате — с двумя знаками;
— сколько всего единиц в заказе;
— среднюю цену одной единицы после скидки, округлённую функцией round() до сотых;
— бесплатна ли доставка: сумма к оплате не меньше порога.

Примеры

Пример 1
Ввод
SSD
4590
1
Кабель
349.9
2
Кулер
1290.5
2
7
7000
Вывод
SSD: 1 x 4590.00 = 4590.00
Кабель: 2 x 349.90 = 699.80
Кулер: 2 x 1290.50 = 2581.00
------------------------------
Сумма: 7870.80 руб.
Промокод 7%: 550.96 руб.
К оплате: 7319.84 руб.
Штук, всего: 5
Средняя цена единицы: 1463.97 руб.
Бесплатная доставка: True
Пример 2
Ввод
Мышь
990
1
Коврик
459.9
1
Батарейки
89.5
3
10
3000
Вывод
Мышь: 1 x 990.00 = 990.00
Коврик: 1 x 459.90 = 459.90
Батарейки: 3 x 89.50 = 268.50
------------------------------
Сумма: 1718.40 руб.
Промокод 10%: 171.84 руб.
К оплате: 1546.56 руб.
Штук, всего: 5
Средняя цена единицы: 309.31 руб.
Бесплатная доставка: False
Подсказка: тот же приём в другой задаче
примердругая задача
salary = 40000
bonus = salary * 15 / 100
print(f"Премия: {bonus:.2f}")
print("=" * 12)
Выводрезультат запуска
Премия: 6000.00
============
Задача 12

Этикетка посылки

+2 к дисциплине

Служба доставки печатает этикетку посылки в рамке из символов. Вводятся имя и фамилия получателя, город, улица с домом, почтовый индекс, число коробок (целое) и ширина текста внутри рамки (целое число). Ширина всегда не меньше длины самой длинной строки. Выведите карточку, как в примерах:
— верхняя и нижняя граница: знак +, дефисы на ширину плюс 2, знак +;
— три строки текста: | , текст, пробелы до заданной ширины, |. Число пробелов посчитайте через len(), сами пробелы получите повтором строки;
— строки текста: «имя фамилия», «город, улица», «Индекс индекс, коробок N»;
— под рамкой — сколько пробелов добавлено в каждую из трёх строк;
— помещается ли карточка в строку из 40 символов: полная ширина карточки — это ширина текста плюс 4.

Примеры

Пример 1
Ввод
Олег
Иванов
Тверь
ул. Ленина 5
170100
2
26
Вывод
+----------------------------+
| Олег Иванов                |
| Тверь, ул. Ленина 5        |
| Индекс 170100, коробок 2   |
+----------------------------+
Добавлено пробелов: 15 7 2
Помещается в 40 символов: True
Пример 2
Ввод
Ия
Ли
Омск
пр. Мира 12
644000
1
25
Вывод
+---------------------------+
| Ия Ли                     |
| Омск, пр. Мира 12         |
| Индекс 644000, коробок 1  |
+---------------------------+
Добавлено пробелов: 20 8 1
Помещается в 40 символов: True
Подсказка: тот же приём в другой задаче
примердругая задача
name = "Кот"
print("[" + name + "." * (8 - len(name)) + "]")
print("[" + "Барсик" + "." * (8 - len("Барсик")) + "]")
Выводрезультат запуска
[Кот.....]
[Барсик..]
Контрольная работа № 1 · главы 1.1–1.9 · Задачник по Python Автор: Макаров Максим Николаевич