/
pozzi88
/
PYAPI_Homework_files
Обзор
Документация
Войти
/
pozzi88
/
PYAPI_Homework_files
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
task-3
task_file_read.py
62 строки
2 KB
viktorm-py
task-2
19 апр 2025, 11:49
19 апр 2025, 11:49
fdb976d
Код
Авторство
О чём код?
import os def read_recipes_from_file(file_path): cook_book = {} with open(file_path, encoding='utf-8') as file: while True: dish_name = file.readline().strip() if not dish_name: break ingredients_count = int(file.readline().strip()) ingredients = [] for _ in range(ingredients_count): line = file.readline().strip() ingredient_name, quantity, measure = map(str.strip, line.split('|')) ingredients.append({ 'ingredient_name': ingredient_name, 'quantity': int(quantity), 'measure': measure }) cook_book[dish_name] = ingredients file.readline() return cook_book def get_shop_list_by_dishes(dishes, person_count, cook_book): shop_list = {} for dish in dishes: 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} return shop_list def main(): current_dir = os.path.dirname(__file__) file_path = os.path.join(current_dir, 'recipes.txt') cook_book = read_recipes_from_file(file_path) for dish, ingredients in cook_book.items(): print(f'\n{dish}:') for item in ingredients: print(f" {item['ingredient_name']}: {item['quantity']} {item['measure']}") print("\n\nСписок покупок для 2 персон (Омлет + Запеченный картофель):") shopping_list = get_shop_list_by_dishes(['Запеченный картофель', 'Омлет'], 2, cook_book) for name, data in shopping_list.items(): print(f"{name}: {data}") if __name__ == '__main__': main()