/
santanas
/
YAPI_Homework
Обзор
Документация
Войти
/
santanas
/
YAPI_Homework
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
cook_book.py
58 строк
2 KB
Santana
Домашнее задание: работа с файлами (cook_book)
22 июл 2026, 19:27
22 июл 2026, 19:27
031df89
Код
Авторство
О чём код?
"""Задача №1. Чтение файла с рецептами и построение словаря cook_book. Модуль используется и в задаче №2 (get_shop_list_by_dishes.py), поэтому логика чтения файла вынесена сюда, а не дублируется. """ def read_recipe_lines(file_path): """Читает файл рецептов и возвращает список непустых строк без пробелов по краям.""" with open(file_path, 'r', encoding='utf-8') as file: lines = [line.strip() for line in file if line.strip()] return lines def parse_ingredient_line(line): """Разбирает строку вида 'Название | Количество | Ед.измерения' в словарь ингредиента.""" name, quantity, measure = (part.strip() for part in line.split('|')) ingredient = { 'ingredient_name': name, 'quantity': int(quantity), 'measure': measure, } return ingredient def get_cook_book(file_path): """Строит словарь cook_book из файла рецептов file_path.""" lines = read_recipe_lines(file_path) cook_book = {} index = 0 while index < len(lines): dish_name = lines[index] index += 1 ingredient_count = int(lines[index]) index += 1 ingredients = [] for _ in range(ingredient_count): ingredients.append(parse_ingredient_line(lines[index])) index += 1 cook_book[dish_name] = ingredients return cook_book def main(): """Точка входа: выводит на экран собранный cook_book.""" cook_book = get_cook_book('recipes.txt') for dish_name, ingredients in cook_book.items(): print(dish_name) for ingredient in ingredients: print(f' {ingredient}') if __name__ == '__main__': main()