/
Alex-Piton
/
Homework_open_file
Обзор
Документация
Войти
/
Alex-Piton
/
Homework_open_file
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Z1.py
72 строки
3 KB
Alex-Piton
upload files
18 июл 2025, 23:49
18 июл 2025, 23:49
ac73327
Код
Авторство
О чём код?
def read_file(file_path): with open(file_path, 'r', encoding='utf-8') as file: return file.read() def parse_recipes(text): blocks = text.strip().split('\n\n') cook_book = {} for block in blocks: lines = block.split('\n') dish_name = lines[0] ingredient_count = int(lines[1]) ingredients = [] for i in range(2, 2 + ingredient_count): ingredient_info = lines[i].split(' | ') ingredient = { 'ingredient_name': ingredient_info[0].strip(), 'quantity': int(ingredient_info[1].strip()), 'measure': ingredient_info[2].strip() } ingredients.append(ingredient) cook_book[dish_name] = ingredients return cook_book def print_cook_book(cook_book): for dish, ingredients in cook_book.items(): print(f"Рецепт: {dish}") print(f"Количество ингредиентов: {len(ingredients)}") for ingredient in ingredients: print(f" {ingredient['ingredient_name']} - {ingredient['quantity']} {ingredient['measure']}") print() def main(): file_content = read_file('recipes.txt') cook_book = parse_recipes(file_content) expected_cook_book = { 'Омлет': [ {'ingredient_name': 'Яйцо', 'quantity': 2, 'measure': 'шт'}, {'ingredient_name': 'Молоко', 'quantity': 100, 'measure': 'мл'}, {'ingredient_name': 'Помидор', 'quantity': 2, 'measure': 'шт'} ], 'Утка по-пекински': [ {'ingredient_name': 'Утка', 'quantity': 1, 'measure': 'шт'}, {'ingredient_name': 'Вода', 'quantity': 2, 'measure': 'л'}, {'ingredient_name': 'Мед', 'quantity': 3, 'measure': 'ст.л'}, {'ingredient_name': 'Соевый соус', 'quantity': 60, 'measure': 'мл'} ], 'Запеченный картофель': [ {'ingredient_name': 'Картофель', 'quantity': 1, 'measure': 'кг'}, {'ingredient_name': 'Чеснок', 'quantity': 3, 'measure': 'зубч'}, {'ingredient_name': 'Сыр гауда', 'quantity': 100, 'measure': 'г'} ], 'Фахитос': [ {'ingredient_name': 'Говядина', 'quantity': 500, 'measure': 'г'}, {'ingredient_name': 'Перец сладкий', 'quantity': 1, 'measure': 'шт'}, {'ingredient_name': 'Лаваш', 'quantity': 2, 'measure': 'шт'}, {'ingredient_name': 'Винный уксус', 'quantity': 1, 'measure': 'ст.л'}, {'ingredient_name': 'Помидор', 'quantity': 2, 'measure': 'шт'} ] } assert cook_book == expected_cook_book, "Структуры cook_book не совпадают" print_cook_book(cook_book) if __name__ == '__main__': main()