import collections # Изначальный словарь с питомцами pets = { 1: { "Мухтар": { "Вид питомца": "Собака", "Возраст питомца": 9, "Имя владельца": "Павел" }, }, 2: { "Каа": { "Вид питомца": "желторотый питон", "Возраст питомца": 19, "Имя владельца": "Саша" }, } } def get_suffix(age): """Возвращает правильное склонение слова 'год' в зависимости от возраста.""" if age % 10 == 1 and age % 100 != 11: return "год" elif age % 10 in [2, 3, 4] and not (age % 100 in [12, 13, 14]): return "года" else: return "лет" def get_pet(ID): """Возвращает информацию о питомце по ID или False, если питомец не найден.""" return pets.get(ID, False) def create(): """Создает новую запись о питомце и добавляет ее в словарь pets.""" import collections last_id = collections.deque(pets, maxlen=1)[0] new_id = last_id + 1 pet_name = input("Введите имя питомца: ") pet_type = input("Введите вид питомца: ") pet_age = int(input("Введите возраст питомца: ")) owner_name = input("Введите имя владельца: ") pets[new_id] = { pet_name: { "Вид питомца": pet_type, "Возраст питомца": pet_age, "Имя владельца": owner_name } } def read(ID): """Отображает информацию о питомце по ID в формате строки.""" pet = get_pet(ID) if pet: pet_name = list(pet.keys())[0] pet_info = pet[pet_name] age_suffix = get_suffix(pet_info['Возраст питомца']) return (f"Это {pet_info['Вид питомца']} по кличке \"{pet_name}\". " f"Возраст питомца: {pet_info['Возраст питомца']} {age_suffix}. " f"Имя владельца: {pet_info['Имя владельца']}") else: return "Питомец с таким ID не найден." def update(ID): """Обновляет информацию о питомце по ID.""" pet = get_pet(ID) if pet: pet_name = list(pet.keys())[0] pet_info = pet[pet_name] pet_info['Вид питомца'] = input("Введите новый вид питомца: ") pet_info['Возраст питомца'] = int(input("Введите новый возраст питомца: ")) pet_info['Имя владельца'] = input("Введите новое имя владельца: ") else: print("Питомец с таким ID не найден.") def delete(ID): """Удаляет запись о питомце по ID.""" if ID in pets: del pets[ID] else: print("Питомец с таким ID не найден.") def pets_list(): """Выводит список всех питомцев.""" for ID, pet in pets.items(): pet_name = list(pet.keys())[0] pet_info = pet[pet_name] age_suffix = get_suffix(pet_info['Возраст питомца']) print(f"ID: {ID}, {pet_info['Вид питомца']} по кличке \"{pet_name}\". " f"Возраст питомца: {pet_info['Возраст питомца']} {age_suffix}. " f"Имя владельца: {pet_info['Имя владельца']}") # Основной цикл работы программы while True: command = input("Введите команду (create, read, update, delete, list, stop): ") if command == 'stop': break elif command == 'create': create() elif command == 'read': pet_id = int(input("Введите ID питомца: ")) print(read(pet_id)) elif command == 'update': pet_id = int(input("Введите ID питомца: ")) update(pet_id) elif command == 'delete': pet_id = int(input("Введите ID питомца: ")) delete(pet_id) elif command == 'list': pets_list() else: print("Неизвестная команда.")