Собираем всё вместе
Часть раздела Logic & Flow путешествия по Python на Coddy — урок 23 из 78.
Задание
ЛегкоТеперь, когда вы создали все отдельные функции для Контактной книги, пришло время собрать их вместе, чтобы создать полноценную программу!
Ваша задача:
- Объедините созданные вами функции:
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".
Этот последний шаг объединяет все полученные вами знания в полностью функционирующее приложение «Контактная книга». Наслаждайтесь результатом своей упорной работы! 🎉
Попробуйте сами
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
1Изучение переменных
КонстантыМножественное присваиваниеОбмен значениями переменныхПеременные-заполнителиОкругление чиселПриведение к списку4Приложение «Книга контактов»
Показать менюДобавить контакт7Множества. Часть 2
Математические операции. Часть 1Математические операции. Часть 2Повторение — Охота за сокровищамиПодмножества и надмножестваИтерация по множествамПовторение — Трекер турнира10Базовые генераторы списков
СинтаксисСоздание простых списковДобавление условийИспользование агрегации данныхПовторение — Дом списковПовторение — Элементы свободы13Система управления запасами
Обзор проектаДобавление товара2Словари. Часть 1
Что такое словарь?Создание словаряДоступ к значениямИзменение словарейИтоги — Менеджер рецептов5Продвинутое принятие решений
Тернарный операторПроверка вхожденияПроверка идентичностиОшибки отступовПовторение — Фильтр отпусков8Менеджер записей студентов
Обзор проектаДобавить студента11Продвинутые функции
Возврат нескольких значенийLambda-функции. Часть 1Lambda-функции. Часть 2Задача на повторение — Lambda-сортировкаРекурсивные функции. Часть 1Рекурсивные функции. Часть 2Повторение — сумма вложенного списка14Функции высшего порядка
Функция mapФункция filterПовторение — Валидатор emailПовторение — Обработчик чисел3Словари. Часть 2
Методы словарейВложенные словариПроверка наличия ключейПеребор словарей в циклеПовторение: счетчик частоты6Множества. Часть 1
Что такое множество?Основные операцииМетоды множествПовторение — удаление дубликатов9Продвинутая агрегация данных
Использование SumПоиск минимума и максимумаЭффективная сортировка данныхПовторение — Dictionary Sorter