Задание на практику
This commit is contained in:
parent
4329dcb08b
commit
86783ee820
50
README.md
50
README.md
@ -1,68 +1,68 @@
|
|||||||
# Тема: Система управления заказами в интернет-магазине
|
# Тема: Система управления заказами в интернет-магазине
|
||||||
|
|
||||||
Общее описание:
|
*Общее описание:
|
||||||
Необходимо реализовать набор функций для обработки заказов интернет-магазина: загрузка данных, фильтрация, агрегация, расчёты и формирование отчетов.
|
Необходимо реализовать набор функций для обработки заказов интернет-магазина: загрузка данных, фильтрация, агрегация, расчёты и формирование отчетов.*
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Функции:
|
## Функции:
|
||||||
|
|
||||||
1. load_orders(file_path)
|
### 1. load_orders(file_path)
|
||||||
Принимает: строку (путь к файлу)
|
Принимает: строку (путь к файлу)
|
||||||
Возвращает: список словарей (заказы)
|
Возвращает: список словарей (заказы)
|
||||||
Описание: загружает данные заказов из текстового файла (например, JSON или CSV) и преобразует их в список словарей.
|
Описание: загружает данные заказов из текстового файла (например, JSON или CSV) и преобразует их в список словарей.
|
||||||
|
|
||||||
|
|
||||||
2. validate_order(order)
|
### 2. validate_order(order)
|
||||||
Принимает: словарь (один заказ)
|
Принимает: словарь (один заказ)
|
||||||
Возвращает: bool
|
Возвращает: bool
|
||||||
Описание: проверяет корректность структуры заказа (наличие обязательных полей: id, customer, items, total_price).
|
Описание: проверяет корректность структуры заказа (наличие обязательных полей: id, customer, items, total_price).
|
||||||
|
|
||||||
|
|
||||||
3. filter_orders_by_customer(orders, customer_name)
|
### 3. filter_orders_by_customer(orders, customer_name)
|
||||||
Принимает: список заказов, строку (имя клиента)
|
Принимает: список заказов, строку (имя клиента)
|
||||||
Возвращает: список заказов
|
Возвращает: список заказов
|
||||||
Описание: возвращает только заказы указанного клиента.
|
Описание: возвращает только заказы указанного клиента.
|
||||||
|
|
||||||
|
|
||||||
4. calculate_order_total(order)
|
### 4. calculate_order_total(order)
|
||||||
Принимает: словарь (заказ)
|
Принимает: словарь (заказ)
|
||||||
Возвращает: число (сумма заказа)
|
Возвращает: число (сумма заказа)
|
||||||
Описание: вычисляет итоговую стоимость заказа на основе списка товаров (items).
|
Описание: вычисляет итоговую стоимость заказа на основе списка товаров (items).
|
||||||
|
|
||||||
|
|
||||||
5. update_order_totals(orders)
|
### 5. update_order_totals(orders)
|
||||||
Принимает: список заказов
|
Принимает: список заказов
|
||||||
Возвращает: список заказов
|
Возвращает: список заказов
|
||||||
Описание: пересчитывает и обновляет поле total_price для каждого заказа.
|
Описание: пересчитывает и обновляет поле total_price для каждого заказа.
|
||||||
|
|
||||||
|
|
||||||
6. get_top_expensive_orders(orders, n)
|
### 6. get_top_expensive_orders(orders, n)
|
||||||
Принимает: список заказов, число n
|
Принимает: список заказов, число n
|
||||||
Возвращает: список заказов
|
Возвращает: список заказов
|
||||||
Описание: возвращает n самых дорогих заказов.
|
Описание: возвращает n самых дорогих заказов.
|
||||||
|
|
||||||
|
|
||||||
7. group_orders_by_customer(orders)
|
### 7. group_orders_by_customer(orders)
|
||||||
Принимает: список заказов
|
Принимает: список заказов
|
||||||
Возвращает: словарь (ключ — имя клиента, значение — список заказов)
|
Возвращает: словарь (ключ — имя клиента, значение — список заказов)
|
||||||
Описание: группирует заказы по клиентам.
|
Описание: группирует заказы по клиентам.
|
||||||
|
|
||||||
|
|
||||||
8. calculate_customer_spending(orders)
|
### 8. calculate_customer_spending(orders)
|
||||||
Принимает: список заказов
|
Принимает: список заказов
|
||||||
Возвращает: словарь (клиент → сумма покупок)
|
Возвращает: словарь (клиент → сумма покупок)
|
||||||
Описание: считает общую сумму покупок для каждого клиента.
|
Описание: считает общую сумму покупок для каждого клиента.
|
||||||
|
|
||||||
|
|
||||||
9. find_most_popular_product(orders)
|
### 9. find_most_popular_product(orders)
|
||||||
Принимает: список заказов
|
Принимает: список заказов
|
||||||
Возвращает: строку (название товара)
|
Возвращает: строку (название товара)
|
||||||
Описание: определяет самый часто покупаемый товар.
|
Описание: определяет самый часто покупаемый товар.
|
||||||
|
|
||||||
|
|
||||||
10. generate_report(orders)
|
### 10. generate_report(orders)
|
||||||
Принимает: список заказов
|
Принимает: список заказов
|
||||||
Возвращает: строку
|
Возвращает: строку
|
||||||
Описание: формирует текстовый отчет (общее количество заказов, топ-клиенты, популярный товар и т.д.).
|
Описание: формирует текстовый отчет (общее количество заказов, топ-клиенты, популярный товар и т.д.).
|
||||||
@ -72,36 +72,36 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Требования к main():
|
## Требования к main():
|
||||||
|
|
||||||
В функции main() необходимо:
|
В функции main() необходимо:
|
||||||
|
|
||||||
1. Считать данные заказов из файла (например, data/orders.txt) с помощью load_orders.
|
### 1. Считать данные заказов из файла (например, data/orders.txt) с помощью load_orders.
|
||||||
|
|
||||||
|
|
||||||
2. Отфильтровать некорректные заказы с использованием validate_order.
|
### 2. Отфильтровать некорректные заказы с использованием validate_order.
|
||||||
|
|
||||||
|
|
||||||
3. Пересчитать суммы заказов через update_order_totals.
|
### 3. Пересчитать суммы заказов через update_order_totals.
|
||||||
|
|
||||||
|
|
||||||
4. Выполнить анализ данных:
|
### 4. Выполнить анализ данных:
|
||||||
|
|
||||||
сгруппировать заказы (group_orders_by_customer);
|
- сгруппировать заказы (group_orders_by_customer);
|
||||||
|
|
||||||
посчитать траты клиентов (calculate_customer_spending);
|
- посчитать траты клиентов (calculate_customer_spending);
|
||||||
|
|
||||||
найти популярный товар (find_most_popular_product);
|
- найти популярный товар (find_most_popular_product);
|
||||||
|
|
||||||
определить топ дорогих заказов (get_top_expensive_orders).
|
- определить топ дорогих заказов (get_top_expensive_orders).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
5. Сформировать итоговый отчет с помощью generate_report.
|
### 5. Сформировать итоговый отчет с помощью generate_report.
|
||||||
|
|
||||||
|
|
||||||
6. Вывести результат работы программы в консоль.
|
### 6. Вывести результат работы программы в консоль.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Все функции должны быть использованы в рамках единого сценария обработки данных.
|
*Все функции должны быть использованы в рамках единого сценария обработки данных.*
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user