Module pay_calculator.calc

Функциональная часть проекта.

Модуль содержит бизнес-логику для расчета скидок и валидации входных данных.

Functions

def apply_special_discount(price)
Expand source code
def apply_special_discount(price):
    """Применяет специальную скидку к цене.

    В текущей реализации функция является заглушкой и возвращает исходную цену
    без изменений. Предназначена для будущего расширения функционала.

    Args:
        price (float): Исходная цена товара.

    Returns:
        float: Цена после применения специальной скидки (currently equals to input).
    """
    return price

Применяет специальную скидку к цене.

В текущей реализации функция является заглушкой и возвращает исходную цену без изменений. Предназначена для будущего расширения функционала.

Args

price : float
Исходная цена товара.

Returns

float
Цена после применения специальной скидки (currently equals to input).
def calculate_discount(amount, discount_percent)
Expand source code
def calculate_discount(amount, discount_percent):
    """Рассчитывает итоговую сумму после применения скидки.

    Args:
        amount (float): Исходная сумма покупки. Должна быть неотрицательной.
        discount_percent (float): Процент скидки. Должен быть в диапазоне от 0 до 100.

    Returns:
        float: Итоговая сумма после вычета скидки.

    Raises:
        ValueError: Если сумма покупки отрицательная или процент скидки выходит
            за пределы диапазона [0, 100].

    Example:
        >>> calculate_discount(1000, 10)
        900.0
    """
    if amount < 0:
        raise ValueError("Сумма не может быть отрицательной")
    if discount_percent < 0 or discount_percent > 100:
        raise ValueError("Процент скидки должен быть от 0 до 100")
    discount_amount = amount * (discount_percent / 100)
    final_price = amount - discount_amount
    return final_price

Рассчитывает итоговую сумму после применения скидки.

Args

amount : float
Исходная сумма покупки. Должна быть неотрицательной.
discount_percent : float
Процент скидки. Должен быть в диапазоне от 0 до 100.

Returns

float
Итоговая сумма после вычета скидки.

Raises

ValueError
Если сумма покупки отрицательная или процент скидки выходит за пределы диапазона [0, 100].

Example

>>> calculate_discount(1000, 10)
900.0
def validate_input(val)
Expand source code
def validate_input(val):
    """Проверяет, можно ли преобразовать входное значение в число с плавающей точкой.

    Args:
        val (str): Строковое представление значения для проверки.

    Returns:
        bool: True, если значение может быть преобразовано в float, иначе False.
    """
    try:
        float(val)
        return True
    except ValueError:
        return False

Проверяет, можно ли преобразовать входное значение в число с плавающей точкой.

Args

val : str
Строковое представление значения для проверки.

Returns

bool
True, если значение может быть преобразовано в float, иначе False.