DamiRocK

Python: модуль math и функция amount_per_person()

Рассчитываем сумму на человека с чаевыми и округлением вверх через math.ceil(). Импорт модуля, проценты и два проверочных примера.

Задание источника

Реализуйте 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 сохранён.

Reading preferences

Appearance
Contrast
More options

Saved only in this browser. Your device’s reduced-motion setting is always respected. Browser zoom works throughout the site.