/
Yakolman
/
PY_API
Обзор
Документация
Войти
/
Yakolman
/
PY_API
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
py_api_homework.py
53 строки
2 KB
kolman
task2 added
22 май 2025, 21:59
22 май 2025, 21:59
bfaff38
Код
Авторство
О чём код?
with open('recipes.txt', encoding='utf-8') as f: cleaned_lines = [line.strip() for line in f.readlines()] blocks = [] #Создаю список для хранения всех рецептов temp_block = [] #Создаю список для текущих рецептов for line in cleaned_lines: if line != "": temp_block.append(line) else: if temp_block: blocks.append(temp_block) temp_block = [] # Добавляю последний не пустой блок после цикла в blocks if temp_block: blocks.append(temp_block) cook_book = {} #Создаю пустой словарь книги рецептов for block in blocks: dish_name = block[0] #Key ingredients_list = block[2:] #Value ingredients = [] for ingredient_line in ingredients_list: parts = ingredient_line.split('|') #Разбиваю строки по символу | name = parts[0].strip() quantity = int(parts[1].strip()) measure = parts[2].strip() #Формирую необходимую структуру для вывода ingredients.append({ 'ingredient_name': name, 'quantity': quantity, 'measure': measure }) cook_book[dish_name] = ingredients # import pprint # импорт pretty print для структурированного вывода pprint.pprint(cook_book, sort_dicts=False) # вывожу без сортировки, в порядке их добавления в словарь #Реализация функции get_shop_list_by_dishes def get_shop_list_by_dishes(dishes, person_count): shop_list = {} for dish in dishes: if dish in cook_book: ingredients = cook_book[dish] for ingredient in ingredients: name = ingredient['ingredient_name'] measure = ingredient['measure'] quantity = ingredient['quantity'] * person_count if name in shop_list: shop_list[name]['quantity'] += quantity else: shop_list[name] = {'measure': measure, 'quantity': quantity} return shop_list result = get_shop_list_by_dishes(['Запеченный картофель', 'Омлет'], 2) pprint.pprint(result, sort_dicts=False)