вторник, 21 августа 2018 г.

Майкл Доусон - Программируем на Python, ответ на 4-ое задание 5-ой главы...

# coding=utf-8
"""
Доработайте программу "Кто твой папа? так, чтобы можно было,
введя имя человека, узнать, кто его дед. Программа должна
по-прежнему пользоваться словарем с парами "сын-отец".
Подумайте, как включить в этот словарь несколько
поколений. """

MENU = ("""
1 - Поиск деда человека по имени
2 - Изменение данных
3 - Удаление данных
4 - Добавить новые данные
5 - Выход
""")

family = {"Остап Бендер": {"Турецкоподанный": "Отец турецкоподанного"},
        "Люк Скайуокер": "Дарт Вейдер",
        "Солид Снейк": "Биг Босс"}

choice = None
son = ""
father = ""

while choice != 5:
    print(MENU)
    choice = int(input("Выберите пункт меню:"))

    # Поиск отца человека по имени.
    if choice == 1:
        son = input("Введите имя человека: ")
        if son in family:
            print("\nРодителем человека по имени", son, "является", family[son[0]], "а его дедом", family[son[1]])
        else:
            print("Ошибка, такого человека нет в базе данных")

    # Изменение данных.
    elif choice == 2:
        son = input("Введите имя человека: ")
        if son in family:
            father = str(input("Введите новое имя его отца: "))
            family[son] = father
            print("\nРодителем человека по имени", son, "является", family[son])
        else:
            print("Ошибка, такого человека нет в базе данных")

    # Удаление данных.
    elif choice == 3:
        son = input("Введите имя человека: ")
        if son in family:
            del family[son]
            print("\nЗапись удалена")
        else:
            print("Ошибка, такого человека нет в базе данных")

    # Добавить новые данные.
    elif choice == 4:
        son = input("Введите имя человека: ")
        if son in family:
            print("\nТакая запись уже существует")
        else:
            father = str(input("Введите имя родителя: "))
            family[son] = father
            print("Добавлено в базу данных")

    # Выход.
    elif choice == 5:
        print("До свиданья!")


2 комментария:

  1. 3е и 4ое задание. С упоминанием деда в виде вложенного списка отец-дед в общий словарь. Добавление и вывод информации. Удаление и редактирование можно сделать по образцу, смысл понятен. Kasstorka@gmail.com
    https://pastebin.com/yQDnfr8N

    ОтветитьУдалить
  2. Не знаю у кого как, но у меня получилось по другому. Если что то не так, поправьте пожайлуста.
    Ссылка на код: https://pastebin.com/dUnbPZan

    ОтветитьУдалить