/
MaxTest
/
Oarfwtaf
Обзор
Документация
Войти
/
MaxTest
/
Oarfwtaf
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Task_2.py
61 строка
2 KB
Maxim Ganyushin
All tasks
02 дек 2025, 20:55
02 дек 2025, 20:55
222f96c
Код
Авторство
О чём код?
def read_recipes_from_file(filename): cook_book = {} with open(filename, 'r', encoding='utf-8') as file: while True: dish_name = file.readline().strip() if not dish_name: break ingredients_count = int(file.readline().strip()) ingredients_list = [] for _ in range(ingredients_count): ingredient_line = file.readline().strip() ingredient_parts = ingredient_line.split(' | ') ingredient_dict = { 'ingredient_name': ingredient_parts[0], 'quantity': int(ingredient_parts[1]), 'measure': ingredient_parts[2] } ingredients_list.append(ingredient_dict) cook_book[dish_name] = ingredients_list file.readline() return cook_book def get_shop_list_by_dishes(dishes, person_count): cook_book = read_recipes_from_file('recipes.txt') shop_list = {} for dish_name in dishes: if dish_name not in cook_book: print(f"Блюдо '{dish_name}' не найдено в книге рецептов") continue for ingredient in cook_book[dish_name]: ingredient_name = ingredient['ingredient_name'] quantity = ingredient['quantity'] * person_count measure = ingredient['measure'] if ingredient_name in shop_list: shop_list[ingredient_name]['quantity'] += quantity else: shop_list[ingredient_name] = { 'measure': measure, 'quantity': quantity } return shop_list if __name__ == "__main__": shop_list = get_shop_list_by_dishes(['Запеченный картофель', 'Омлет'], 2) print("Список покупок:") for ingredient, details in sorted(shop_list.items()): print(f" '{ingredient}': {details}")