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

men = 	{'Игорь Сергеевич': ['Сергей Альбертович','Альберт Исаевич'], 
		'Степан Матвеевич': ['Матвей Иосифович','Иосиф Корнеевич'], 
		'Юрий Осипович': ['Осип Петрович','Петр Карлович']}
		

options = ("""
    Для выбора действия нажмите соответствующую клавишу :
    0\tВыйти из программы
    1\tДобавить запись \"сын-отец-дед\"
    2\tИзменить данные отца или деда в записи \"сын-отец-дед\"
    3\tУдалить  запись \"сын-отец-дед\"
    4\tПоиск записи \"сын-отец-дед\"
    5\tПоказать все имеющиеся данные \"сын-отец-дед\"\n """)
options_pool = ('0','1','2','3','4','5')
	
choice = None
while choice != '0':
	#Запрос выбора пользователя и его проверка на осуществимость
	print(options)
	choice = input ("Ваш выбор: ")
	while choice not in options_pool :
		if choice != None :
			print("Такой опции в программе не предусмотрено\n")
			choice = input ("Ваш выбор: ")
	print()
	
	#Выход из программы
	if choice == '0':
		print("До свидания")
	
	#Добавление записи "сын-отец-дед"
	elif choice == "1":
		add_son = input("\nВведите имя и отчество сына, например 'Иван Иванович' ")
		if add_son not in men :
			add_father = input("\nВведите имя и отчество ОТЦА, например 'Иван Иванович' \nили нажмите Enter для пропуска действия: ")
			add_olddad = input("\nВведите имя и отчество ДЕДА, например 'Иван Иванович' \nили нажмите Enter для пропуска действия: ")
			men[add_son] = [add_father, add_olddad]
			print("\nЗапись об именах \"сын-отец-дед\" добавлена в базу данных")
		else :
			print("\nТакое имя и отчество уже есть")
	
	#Изменить данные отца или деда в записи "сын-отец-дед"
	elif choice == "2":
		add_son = input("\nВведите имя сына, данные об отце которого вы хотите изменить: ")
		if add_son in men :
			add_father = input("\nВведите новое имя и отчество ОТЦА, например 'Иван Иванович' \nили нажмите Enter для сохранения существующих: ")
			add_olddad = input("\nВведите новое имя и отчество ДЕДА, например 'Иван Иванович' \nили нажмите Enter для сохранения существующих: ")
			if add_father != '':
				men[add_son][0] = add_father
			if add_olddad != '':
				men[add_son][1] = add_olddad
			print("\nПара имён \"сын-отец-дед\" изменена в базе данных")
		else :
			print("\nТакого имени и отчества нет в базе")
	
	#Удаление записи "сын-отец-дед"
	elif choice == "3":
		add_son = input("\nВведите имя сына, запись о котором вы хотите удалить: ")
		if add_son in men :
			del men[add_son] 
			print("\nЗапись об именах \"сын-отец-дед\" удалена из базы данных")
		else :
			print("\nТакого имени и отчества нет в базе")
	
	#Поиск записи \"сын-отец-отец\"
	elif choice == "4":
		add_son = input("\nВведите имя сына, данные об отце которого вы хотите увидеть: ")
		if add_son in men :
			print("Сын: ", add_son,"\nОтец: ", men[add_son][0],
				"\nДед:  ", men[add_son][1],"\n\n")
		else :
			print("\nТакого имени и отчества нет в базе")
	
	#Показать все имеющиеся данные \"сын-отец\"
	elif choice == "5":
		all_names_sort = sorted(men.keys())
		print()
		for couple in all_names_sort :
			print("Сын:  ", couple,"\nОтец: ", men[couple][0],
				"\nДед:  ", men[couple][1])
			print()
			
			
input("Нажмите Enter для выхода из программы")

