/
ignatevms
/
Cook_Book
Обзор
Документация
Войти
/
ignatevms
/
Cook_Book
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
Recipes.py
43 строки
2 KB
Michael Ignatev
Initial commit
23 мар 2025, 19:11
23 мар 2025, 19:11
2978ac9
Код
Авторство
О чём код?
def get_dict(f): """ Задача №1 Функция для формирования словаря из файла (f). Сначала из файла формируем список строк, затем из данного списка формируем словарь. В результат выполнения функции возвращаем получившийся словарь """ cook_book = {} my_list = [[]] recipes = open(my_file, encoding = 'UTF-8') for text in recipes: if text == '\n': my_list.append([]) else: my_list[-1].append(text.strip()) for i in range(len(my_list)): cook_book[my_list[i][0]] = [] for j in range(int(my_list[i][1])): cook_book[my_list[i][0]] += [ {'ingredient_name': my_list[i][j + 2].split('|')[0].strip(), 'quantity': my_list[i][j + 2].split('|')[1].strip(), 'measure': my_list[i][j + 2].split('|')[2].strip()}] return cook_book def get_shop_list_by_dishes(dishes, person_count): """ Задача №2 Функция для расчета количества ингредиентов по блюдам и количеству персон. """ cook_book = get_dict(my_file) res = {} for dish in dishes: for ingr in cook_book[dish]: if ingr['ingredient_name'] not in res: res[ingr['ingredient_name']] = { 'measure': ingr['measure'], 'quantity': int(ingr['quantity']) * person_count} else: res[ingr['ingredient_name']]['quantity'] += int(ingr['quantity']) * person_count return res my_file = 'recipes.txt' print(get_shop_list_by_dishes(['Фахитос', 'Омлет'], 2))