/
VGorobchenko
/
OpenFails
Обзор
Документация
Войти
/
VGorobchenko
/
OpenFails
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
cook_book.py
111 строк
4 KB
Torry89
Initial commit
01 авг 2026, 20:40
01 авг 2026, 20:40
ff8df51
Код
Авторство
О чём код?
from gzip import write32u def parse_recipe_files(file): try: with (open('recipies.txt', 'r', encoding='utf-8') as f): cook_book = {} lines = f.readlines() lines = [line.strip() for line in lines if line.strip()] i = 0 while i < len(lines): dish_name = lines[i] i += 1 if not dish_name: continue if i >= len(lines): break try: ingredients_count = int(lines[i]) except ValueError: print("Ошибка: неверный формат количества ингредиентов") i += 1 i += 1 ingredients = [] for _ in range(ingredients_count): if i >= len(lines): print("Ошибка: недостаточно ингредиентов для блюда") break ingredients_line = lines[i] parts = ingredients_line.split('|') if len(parts) != 3: print("Ошибка: неверный формат ингредиента") continue ingredient_name,quantity, measure = parts try: quantity = int(quantity) if quantity.isdigit() else float(quantity) except ValueError: print(f"Ошибка: Неверный формат количества '{quantity}'") continue ingredients.append({ "ingredient_name": ingredient_name, "quantity": int(quantity), "measure": measure }) i += 1 cook_book[dish_name] = ingredients except FileNotFoundError: print("Ошибка: файл не найден") return {} return cook_book print(parse_recipe_files('recipies.txt')) cook_book = parse_recipe_files('recipies.txt') def display_cook_book(cook_book): if not cook_book: print('Кулинарная клига не найдена') return print("\n" + "="*60) print("КУЛИНАРНАЯ КНИГА") print("="*60) for dish_name, ingredients in cook_book.items(): print(f"\n🍳 {dish_name.upper()}") print("-" * 40) for ingredient in ingredients: print(f" • {ingredient['ingredient_name']}: {ingredient['quantity']} {ingredient['measure']}") print("-" * 40) print(display_cook_book(cook_book)) def get_shop_list_by_dishes(dishes, person_count): shop_list = {} # for dish in dishes: # for values in cook_book.values(): # if dish in cook_book.keys(): # for ingredients in values: # name = ingredients['ingredient_name'] # measure = ingredients['measure'] # quantity = ingredients['quantity']*person_count # weight = {'measure': measure, # 'quantity':quantity} # shop_list[name] = weight for dish in dishes: # Проверяем, есть ли блюдо в cook_book if dish in cook_book: # Получаем список ингредиентов для блюда ingredients = cook_book[dish] for ingredient in ingredients: name = ingredient['ingredient_name'] measure = ingredient['measure'] quantity = ingredient['quantity'] * person_count if name in shop_list: shop_list[name]['quantity'] += quantity else: shop_list[name] = { 'measure': measure, 'quantity': quantity } else: print(f"Предупреждение: Блюдо '{dish}' не найдено в cook_book") return shop_list dishes = ['Омлет','Запеченный картофель'] print(get_shop_list_by_dishes(dishes,3))