# Решение не все, так как детали задачи скрыты import asyncio # Время доставки до разных городов: delivery_times = { "Москва": 1, "Санкт-Петербург": 3, "Новосибирск": 7, "Екатеринбург": 5, "Нижний Новгород": 4, "Челябинск": 6, "Омск": 7, "Красноярск": 8, "Владивосток": 9, "Хабаровск": 9, } # Заказы: # orders = [(подарок, город, пометка), ...] # Время до нового года: # days_left = # Тут пишите ваш код: async def deliver(order): # Напишите корутину deliver(), которая будет после указанного для данного города времени доставки выводить сообщение: # order = (подарок, город, пометка) await asyncio.sleep(delivery_times.get(order[1])) print(f"Подарок {order[0]} успешно доставлен в г. {order[1]}") async def main(): tasks = [] for order in orders: # Get order note note = order[2] city_name = order[1] present = order[0] task = asyncio.create_task(deliver(order)) if note == "важно": tasks.append(asyncio.shield(task)) else: tasks.append(task) done, pending = await asyncio.wait(tasks, timeout=days_left) for p_task in pending: p_task.cancel() await asyncio.sleep(15) asyncio.run(main())