| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- 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("Неизвестная команда.")
|