Menu
Coddy logo textTech

Собираем всё вместе

Часть раздела Logic & Flow путешествия по Python на Coddy — урок 23 из 78.

challenge icon

Задание

Легко

Теперь, когда вы создали все отдельные функции для Контактной книги, пришло время собрать их вместе, чтобы создать полноценную программу!


Ваша задача:

  1. Объедините созданные вами функции:
    • display_menu: Отображает варианты меню для пользователя.
    • add_contact: Добавляет новый контакт в Контактную книгу.
    • view_contact: Отображает данные конкретного контакта.
    • edit_contact: Обновляет информацию о существующем контакте.
    • delete_contact: Удаляет контакт из Контактной книги.
    • list_all_contacts: Отображает все контакты в Контактной книге.
  2. Создайте словарь с именем contact_book для хранения контактов.
  3. Напишите цикл, который:
    • Отображает меню с помощью display_menu.
    • Принимает ввод пользователя для выбора пункта меню.
    • Вызывает соответствующую функцию в зависимости от выбора пользователя.
    • Выводит "Invalid choice. Please try again.", если пользователь вводит вариант, который не входит в число допустимых пунктов меню.
    • Продолжается до тех пор, пока пользователь не выберет вариант выхода из программы.

Ожидаемое поведение:

При запуске программа должна:

  1. Показывать меню опций для выбора пользователем.
  2. Позволять пользователю взаимодействовать с Контактной книгой, вызывая соответствующую функцию.
  3. Выводить "Invalid choice. Please try again.", когда пользователь вводит нераспознанный вариант.
  4. Чисто завершать работу программы, когда пользователь выбирает опцию "Exit".

Этот последний шаг объединяет все полученные вами знания в полностью функционирующее приложение «Контактная книга». Наслаждайтесь результатом своей упорной работы! 🎉

Попробуйте сами

def display_menu():
    print("Contact Book Menu:")
    print("1. Add Contact")
    print("2. View Contact")
    print("3. Edit Contact")
    print("4. Delete Contact")
    print("5. List All Contacts")
    print("6. Exit")

def add_contact(contact_book):
    name = input()
    if name in contact_book:
        print("Contact already exists!")
        return
    phone = input()
    email = input()
    address = input()
    contact_book[name] = {"phone": phone, "email": email, "address": address}
    print("Contact added successfully!")

def view_contact(contact_book):
    name = input()
    if name in contact_book:
        contact = contact_book[name]
        print(f"Name: {name}")
        print(f"Phone: {contact['phone']}")
        print(f"Email: {contact['email']}")
        print(f"Address: {contact['address']}")
    else:
        print("Contact not found!")

def edit_contact(contact_book):
    name = input()
    if name in contact_book:
        phone = input()
        email = input()
        address = input()

        if phone == '':
            phone = contact_book[name]['phone']
        if email == '':
            email = contact_book[name]['email']
        if address == '':
            address = contact_book[name]['address']

        contact_book[name] = {"phone": phone, "email": email, "address": address}
        print("Contact updated successfully!")
    else:
        print("Contact not found!")

def delete_contact(contact_book):
    name = input()
    if name in contact_book:
        del contact_book[name]
        print("Contact deleted successfully!")
    else:
        print("Contact not found!")

def list_all_contacts(contact_book):
    if not contact_book:
        print("No contacts available.")
    else:
        for name, details in contact_book.items():
            print(f"Name: {name}")
            print(f"Phone: {details['phone']}")
            print(f"Email: {details['email']}")
            print(f"Address: {details['address']}")
            print()  # Blank line between contacts for readability

Все уроки раздела Logic & Flow