from datetime import datetime
def get_results(leader_time_str, runner_time_str):
# 1. Проверяем, является ли участник лидером
if runner_time_str == leader_time_str:
print(f'Вы пробежали за {runner_time_str} и победили!')
return
# 2. Преобразуем строки в объекты datetime для расчётов
time_format = '%H:%M:%S'
leader_t = datetime.strptime(leader_time_str, time_format)
runner_t = datetime.strptime(runner_time_str, time_format)
# 3. Находим разницу. Результатом будет объект timedelta
delta = runner_t - leader_t
total_seconds = int(delta.total_seconds())
# 4. Рассчитываем часы, минуты и секунды отставания
hours = total_seconds // 3600
minutes = (total_seconds % 3600) // 60
seconds = total_seconds % 60
# 5. Собираем строку отставания в формате Ч:ММ:СС
# :02d гарантирует, что минуты и секунды будут с ведущим нулём
delay_time = f'{hours}:{minutes:02d}:{seconds:02d}'
# 6. Печатаем итоговое сообщение
print(f'Вы пробежали за {runner_time_str} с отставанием от лидера {delay_time}')
# Проверка работы программы
get_results('02:02:02', '02:02:02')
get_results('02:02:02', '03:04:05
from decimal import Decimal, getcontext
# Устанавливаем точность в 3 значимых числа
getcontext().prec = 3
def get_monthly_payment(amount, months, percent):
# Преобразуем входные данные в Decimal для точности
amount = Decimal(str(amount))
months = Decimal(str(months))
percent = Decimal(str(percent))
# 1. Делим сумму на количество месяцев
base_payment = amount / months
# 2. Увеличиваем ежемесячный платёж на оговоренный процент
# Формула: база + (база * процент / 100)
monthly_payment = base_payment + (base_payment * percent / 100)
return monthly_payment
# Вызываем функцию с заданными параметрами:
# 54 ВтК, 24 месяца, 9%
payment = get_monthly_payment(54, 24, 9)
# Распечатываем результат
# Используем форматирование :g для вывода 3 значимых чисел
print(f"Ежемесячный платёж: {payment:g} ВтК")