В этом проекте мы создадим приложение «Контактная книга» шаг за шагом, разбивая его на небольшие управляемые функции. Первым шагом будет создание функции display_menu.
Задания:
- Создайте функцию с именем display_menu, которая выводит на экран пункты главного меню для Контактной книги.
Меню должно включать следующие пункты:
Add Contact View Contact Edit Contact Delete Contact List All Contacts Exit
Эта функция станет отправной точкой программы, помогая пользователям перемещаться по пунктам меню.
- Теперь создайте функцию add_contact, которая принимает один аргумент: contact_book (словарь). Функция должна:
Запросить ввод имени, телефона, электронной почты и адреса контакта. Проверить, существует ли уже это имя в словаре. Если да, вывести: "Contact already exists!". Если нет, сохранить контакт в следующем формате:
contact_book[name] = { "phone": phone, "email": email, "address": address } Затем вывести: "Contact added successfully!".
- Просмотреть контакт Создайте функцию с именем view_contact, которая отображает данные конкретного контакта.
Ваша функция должна:
Принимать словарь книги контактов в качестве параметра Получать имя контакта из пользовательского ввода (используя input()) Отображать данные контакта, если он найден Выводить "Contact not found!", если контакт не существует При отображении контакта используйте именно этот формат:
Name: [name] Phone: [phone] Email: [email] Address: [address] Example: Если книга контактов содержит информацию об "Alice" и пользователь вводит "Alice", вывод должен быть следующим:
Name: Alice Phone: 123-456-7890 Email: alice@example.com Address: 123 Main St Если пользователь вводит "Bob" (которого не существует), вывод должен быть следующим:
Contact not found! Note: Ваша функция должна выводить только данные контакта или сообщение об ошибке — без дополнительного текста приглашения.
- Редактировать контакт
Следующим шагом будет создание функции edit_contact. Эта функция позволит пользователям обновлять данные существующего контакта в Контактной книге.
Ваша задача: Создайте функцию с именем edit_contact, которая принимает один аргумент: contact_book (словарь). Получите ввод имени контакта, который пользователь хочет отредактировать. Проверьте, существует ли имя в contact_book: Если оно существует, предложите пользователю ввести новые значения для телефона, электронной почты и адреса контакта (именно в таком порядке!). Если пользователь не вводит данные (нажимает Enter), сохраните текущее значение для этого поля (в этом случае вводом будет пустая строка, ''). Обновите информацию о контакте в словаре. Выведите на печать: "Contact updated successfully!". Если контакт не существует, выведите на печать: "Contact not found!". Помните: считывайте входные данные для телефона, электронной почты и адреса только в том случае, если контакт существует в контактной книге. Если контакт не найден, немедленно выведите сообщение об ошибке, не пытаясь считывать дополнительные входные данные.
Ожидаемое поведение: Для contact_book, содержащего: {"Alice": {"phone": "123-456-7890", "email": "alice@example.com", "address": "123 Main St"}}
Если пользователь вводит: Alice 987-654-3210 456 Elm St
Обновленный contact_book должен выглядеть так: {"Alice": {"phone": "987-654-3210", "email": "alice@example.com", "address": "456 Elm St"}}
Если пользователь вводит имя, которого не существует: Bob
Результат должен быть: Contact not found!
- Удалить контакт
Следующим шагом будет создание функции delete_contact. Эта функция позволит пользователям удалять определенный контакт из Контактной книги.
Ваша задача: Создайте функцию с именем delete_contact, которая принимает один аргумент: contact_book (словарь). Получите ввод имени контакта, который пользователь хочет удалить. Проверьте, существует ли имя в contact_book: Если оно существует, удалите контакт из словаря. Выведите на печать: "Contact deleted successfully!". Если контакт не найден, выведите на печать: "Contact not found!".
- Список всех контактов
Следующим шагом будет создание функции list_all_contacts. Эта функция позволит пользователям просматривать все контакты, хранящиеся в Контактной книге, вместе с их данными.
Ваша задача: Создайте функцию с именем list_all_contacts, которая принимает один аргумент: contact_book (словарь). Проверьте, пуст ли contact_book: Если он пуст, выведите: "No contacts available.". Если он не пуст: Переберите каждый контакт в словаре и выведите его имя, телефон, электронную почту и адрес в читаемом формате. Ожидаемое поведение: Для contact_book, содержащего:
{ "Alice": {"phone": "123-456-7890", "email": "alice@example.com", "address": "123 Main St"}, "Bob": {"phone": "234-567-8901", "email": "bob@example.com", "address": "456 Oak Ave"} } Вывод должен быть следующим:
Name: Alice Phone: 123-456-7890 Email: alice@example.com Address: 123 Main St
Name: Bob Phone: 234-567-8901 Email: bob@example.com Address: 456 Oak Ave
- Собираем всё вместе
Теперь, когда вы создали все отдельные функции для Контактной книги, пришло время собрать их вместе, чтобы создать полноценную программу!
Ваша задача: Объедините созданные вами функции: display_menu: Отображает варианты меню для пользователя. add_contact: Добавляет новый контакт в Контактную книгу. view_contact: Отображает данные конкретного контакта. edit_contact: Обновляет информацию о существующем контакте. delete_contact: Удаляет контакт из Контактной книги. list_all_contacts: Отображает все контакты в Контактной книге. Создайте словарь с именем contact_book для хранения контактов. Напишите цикл, который: Отображает меню с помощью display_menu. Принимает ввод пользователя для выбора пункта меню. Вызывает соответствующую функцию в зависимости от выбора пользователя. Выводит "Invalid choice. Please try again.", если пользователь вводит вариант, который не входит в число допустимых пунктов меню. Продолжается до тех пор, пока пользователь не выберет вариант выхода из программы. Ожидаемое поведение: При запуске программа должна:
Показывать меню опций для выбора пользователем.
Позволять пользователю взаимодействовать с Контактной книгой, вызывая соответствующую функцию.
Выводить "Invalid choice. Please try again.", когда пользователь вводит нераспознанный вариант.
Чисто завершать работу программы, когда пользователь выбирает опцию "Exit".
Этот последний шаг объединяет все полученные вами знания в полностью функционирующее приложение «Контактная книга». Наслаждайтесь результатом своей упорной работы!