diff --git a/zadanie_1.py b/zadanie_1.py index 1f7bdad..8ad37ab 100644 --- a/zadanie_1.py +++ b/zadanie_1.py @@ -106,4 +106,32 @@ def get_unique_items(orders: list[dict]) -> set[str]: """ Возвращает множество уникальных item_name. """ - return {order['item_name'] for order in orders} \ No newline at end of file + 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) \ No newline at end of file