Задание источника
Реализуйте amount_per_person(): функция принимает сумму счёта, число людей и процент чаевых, затем возвращает платёж одного человека с округлением вверх. Для округления используется math.ceil().
import math
def amount_per_person(total: float, people: int, tip_percent: int) -> int:
with_tip = total * (1 + tip_percent / 100)
return math.ceil(with_tip / people)
Проверка примеров
print(amount_per_person(300, 4, 20)) # 90
print(amount_per_person(350, 3, 10)) # 129
В первом случае итог с чаевыми равен 360 и делится на четверых без остатка. Во втором итог равен 385, деление на троих даёт 128,33…, поэтому ceil() возвращает 129.
Что даёт import math
После import math функции модуля доступны через пространство имён math. math.floor() округляет вниз, math.ceil() — вверх до ближайшего целого. Они решают другую задачу, чем round().
Границы упражнения
Источник предполагает положительное число людей. При нуле возникает деление на ноль; производственная функция должна валидировать входы отдельно. Числа в примерах учебные и не являются рекомендацией по размеру чаевых.
Hexlet / Code Basics и участники · Исходный урок и упражнение · GNU AGPL v3. Исправлено 10 сентября 2026: прежняя страница ссылалась на несуществующий путь 350-type-annotations; URL сохранён.