/
sergei_yudin
/
Homework
Обзор
Документация
Войти
/
sergei_yudin
/
Homework
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Homework.py
44 строки
2 KB
Sergei
Initial commint
16 фев 2025, 10:11
16 фев 2025, 10:11
df50619
Код
Авторство
О чём код?
cook_book = {} with open('recipes.txt', 'r', encoding='utf-8') as f: lines = [line.strip() for line in f.readlines() if line.strip()] # Убираем пустые строки i = 0 while i < len(lines): dish_name = lines[i] # Название блюда num_ingredients = int(lines[i + 1]) # Количество ингредиентов ingredients = [] for j in range(i + 2, i + 2 + num_ingredients): # Читаем ингредиенты name, quantity, unit = map(str.strip, lines[j].split('|')) ingredients.append({'ingredient_name': name, 'quantity': int(quantity), 'measure': unit}) cook_book[dish_name] = ingredients # Добавляем в словарь i += 2 + num_ingredients # Переходим к следующему блюду print(cook_book) def get_shop_list_by_dishes(dishes, person_count): shop_list = {} for dish in dishes: if dish in cook_book: # Проверяем, есть ли блюдо в cook_book for ingredient in cook_book[dish]: name = ingredient['ingredient_name'] quantity = ingredient['quantity'] * person_count # Умножаем на число персон measure = ingredient['measure'] 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 # Пример вызова: result = get_shop_list_by_dishes(['Запеченный картофель', 'Омлет'], 2) print(result)