def run_app(): book = PhoneBook('personal book') # populate the book with test data for i in range(10): book.add_contact('Jhon' + str(i), 'Smith', '+71234567809' + str(i), favorite_contact=False, telegram='@jhony', email='*****@*****.**') book.add_contact('Jhon_fav', 'Smith', '+712345678090', favorite_contact=book.find_contact('Jhon2', 'Smith'), telegram='@jhony', email='*****@*****.**') book.add_contact('Jhon_fav2', 'Smith', '+712345671090', favorite_contact=book.find_contact('Jhon3', 'Smith'), telegram='@jhony', email='*****@*****.**') print(info_message) while True: cmd = input("Выберите действие:\n").lower() if cmd in cmd_list: if cmd == 'q': break elif cmd == 'p': book.print_contacts() elif cmd == 's': firstname = input("Введите имя:\n") lastname = input("Введите фамилию:\n") print(book.find_contact(firstname, lastname)) elif cmd == 'a': firstname = input("Введите имя:\n") lastname = input("Введите фамилию:\n") phone_number = input("Введите номер:\n") fav_contact_id = input( "Введите любимый контакт по номеру в списке или Enter для пропуска:\n" ) if fav_contact_id: fav_contact = book.find_contact_by_id(fav_contact_id) if not fav_contact: print("Любимый контакт не найдет. Продолжение работы.") print( 'Введите дополнительную информацию в формате "key=value" или Enter для пропуска:\n' ) additional_info = dict() while True: v = input("Введите дополнительную информацию :\n").strip() if v == '': break else: additional_info.update([tuple(v.split('='))]) book.add_contact(firstname, lastname, phone_number, fav_contact, **additional_info) elif cmd == 'd': phone_number = input("Введите номер телефона:\n") print("Контакт(ы) удилен(ы)" if book. del_contact(phone_number) else "Контакт не найден") elif cmd == 'f': pprint(book.get_all_favorite_numbers())