Пример #1
0
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())