/
timofnik
/
PYAPI_Homework
Обзор
Документация
Войти
/
timofnik
/
PYAPI_Homework
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
main.py
74 строки
2 KB
timofnik
Initial commit
20 июл 2026, 23:58
20 июл 2026, 23:58
a715fde
Код
Авторство
О чём код?
def read_cook_book(file_name): cook_book = {} with open(file_name, encoding='utf-8') as file: while True: dish_name = file.readline().strip() if dish_name == '': break ingredient_count = int(file.readline()) ingredients = [] for i in range(ingredient_count): ingredient = file.readline().strip() ingredient_name, quantity, measure = ingredient.split(' | ') ingredient_dict = { 'ingredient_name': ingredient_name, 'quantity': int(quantity), 'measure': measure } ingredients.append(ingredient_dict) cook_book[dish_name] = ingredients file.readline() return cook_book cook_book = read_cook_book('recipes.txt') def get_shop_list_by_dishes(dishes, person_count): shop_list = {} for dish in dishes: for ingredient in cook_book[dish]: ingredient_name = ingredient['ingredient_name'] quantity = ingredient['quantity'] * person_count measure = ingredient['measure'] if ingredient_name in shop_list: shop_list[ingredient_name]['quantity'] += quantity else: shop_list[ingredient_name] = { 'measure': measure, 'quantity': quantity } return shop_list result = get_shop_list_by_dishes(['Омлет', 'Утка по-пекински'], 2) print(result) files_names = ['1.txt', '2.txt', '3.txt'] files_data = [] for file_name in files_names: with open(file_name, encoding='utf-8') as file: lines = file.readlines() file_info = { 'name': file_name, 'line_count': len(lines), 'content': lines } files_data.append(file_info) def get_line_count(file_info): return file_info['line_count'] files_data.sort(key=get_line_count) with open('result.txt', 'w', encoding='utf-8') as result_file: for file_info in files_data: result_file.write(file_info['name'] + '\n') result_file.write(str(file_info['line_count']) + '\n') result_file.writelines(file_info['content']) if not file_info['content'][-1].endswith('\n'): result_file.write('\n')