/
Patient0
/
Home_Work
Обзор
Документация
Войти
/
Patient0
/
Home_Work
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Task_2_cookbook.py
48 строк
2 KB
Patient0
upload files
12 дек 2025, 16:55
12 дек 2025, 16:55
f1f3357
Код
Авторство
О чём код?
def read_cook_book(file_path): cook_book = {} with open(file_path, encoding='utf-8') as file: while True: dish_name = file.readline().strip() if not dish_name: break ingredient_count = int(file.readline().strip()) ingredients = [] for _ in range(ingredient_count): line = file.readline().strip() ingredient_name, quantity_str, measure = line.split(' | ') ingredients.append({ 'ingredient_name': ingredient_name, 'quantity': int(quantity_str), 'measure': measure }) cook_book[dish_name] = ingredients file.readline() return cook_book def get_shop_list_by_dishes(cook_book, dishes, person_count): shop_list = {} for dish in dishes: if dish not in cook_book: print(f"Блюдо '{dish}' не найдено в книге.") continue for ingredient in cook_book[dish]: name = ingredient['ingredient_name'] measure = ingredient['measure'] total_qty = ingredient['quantity'] * person_count if name in shop_list: shop_list[name]['quantity'] += total_qty else: shop_list[name] = {'measure': measure, 'quantity': total_qty} return shop_list # --- Демонстрация --- if __name__ == '__main__': cook_book = read_cook_book('recipes.txt') shop_list = get_shop_list_by_dishes(cook_book, ['Запеченный картофель', 'Омлет'], 2) # Вывод for ingredient, info in shop_list.items(): print(f"{ingredient}: {info['quantity']} {info['measure']}")