Compare commits
2
Commits
a85e343869
...
0cf7622346
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0cf7622346 | ||
|
|
4a318c94f3 |
@@ -1 +1,46 @@
|
|||||||
|
import os
|
||||||
|
|
||||||
|
# 1. Загрузка заказов из файла
|
||||||
|
def load_orders(filepath: str) -> list[dict]:
|
||||||
|
"""
|
||||||
|
Читает файл с заказами.
|
||||||
|
Формат строки: user_id, item_name, quantity, price_per_item
|
||||||
|
"""
|
||||||
|
orders = []
|
||||||
|
with open(filepath, 'r', encoding='utf-8') as file:
|
||||||
|
for line in file:
|
||||||
|
line = line.strip()
|
||||||
|
if not line:
|
||||||
|
continue
|
||||||
|
parts = line.split(',')
|
||||||
|
if len(parts) != 4:
|
||||||
|
continue
|
||||||
|
|
||||||
|
user_id = int(parts[0].strip())
|
||||||
|
item_name = parts[1].strip()
|
||||||
|
quantity = int(parts[2].strip())
|
||||||
|
price = float(parts[3].strip())
|
||||||
|
total = quantity * price
|
||||||
|
|
||||||
|
orders.append({
|
||||||
|
'user_id': user_id,
|
||||||
|
'item_name': item_name,
|
||||||
|
'quantity': quantity,
|
||||||
|
'price': price,
|
||||||
|
'total': total
|
||||||
|
})
|
||||||
|
return orders
|
||||||
|
|
||||||
|
|
||||||
|
# 2. Валидация заказов (удаление некорректных)
|
||||||
|
def validate_orders(orders: list[dict]) -> list[dict]:
|
||||||
|
"""
|
||||||
|
Отбрасывает заказы с quantity <= 0, price <= 0 или пустым item_name.
|
||||||
|
"""
|
||||||
|
valid_orders = []
|
||||||
|
for order in orders:
|
||||||
|
if (order['quantity'] > 0 and
|
||||||
|
order['price'] > 0 and
|
||||||
|
order['item_name'].strip() != ''):
|
||||||
|
valid_orders.append(order)
|
||||||
|
return valid_orders
|
||||||
|
|||||||
Reference in New Issue
Block a user