Добавлена функция generate_report

This commit is contained in:
Антон Репин 2026-05-07 13:23:03 +03:00
parent fab181ddbe
commit 794284aa29

View File

@ -106,4 +106,32 @@ def get_unique_items(orders: list[dict]) -> set[str]:
"""
Возвращает множество уникальных item_name.
"""
return {order['item_name'] for order in orders}
return {order['item_name'] for order in orders}
# 9. Генерация текстового отчета
def generate_report(stats: dict) -> str:
"""
stats ожидается с ключами:
- unique_users (int)
- total_revenue (float)
- most_expensive_item (tuple (name, price))
- unique_items (set или list)
"""
report_lines = []
report_lines.append("=" * 50)
report_lines.append("ОТЧЕТ ПО ЗАКАЗАМ ИНТЕРНЕТ-МАГАЗИНА")
report_lines.append("=" * 50)
report_lines.append(f"Всего уникальных пользователей: {stats['unique_users']}")
report_lines.append(f"Общая выручка (без скидок): {stats['total_revenue']:.2f} руб.")
item_name, item_price = stats['most_expensive_item']
report_lines.append(f"Самый дорогой товар: {item_name} (цена за ед.: {item_price:.2f} руб.)")
report_lines.append(f"Уникальных товаров в ассортименте: {len(stats['unique_items'])}")
report_lines.append("Список товаров:")
for item in sorted(stats['unique_items']):
report_lines.append(f" - {item}")
report_lines.append("=" * 50)
return "\n".join(report_lines)