Menu
Coddy logo textTech

Todo Junto

Parte de la sección Logic & Flow del Journey de Python de Coddy — lección 23 de 78.

challenge icon

Desafío

Fácil

¡Ahora que has construido todas las funciones individuales para la Agenda de Contactos, es hora de unirlas para crear el programa completo!


Tu Tarea:

  1. Combina las funciones que has creado:
    • display_menu: Muestra las opciones del menú para el usuario.
    • add_contact: Añade un nuevo contacto a la Agenda de Contactos.
    • view_contact: Muestra los detalles de un contacto específico.
    • edit_contact: Actualiza la información de un contacto existente.
    • delete_contact: Elimina un contacto de la Agenda de Contactos.
    • list_all_contacts: Muestra todos los contactos en la Agenda de Contactos.
  2. Crea un diccionario llamado contact_book para almacenar los contactos.
  3. Escribe un bucle que:
    • Muestre el menú usando display_menu.
    • Acepte la entrada del usuario para la elección del menú.
    • Llame a la función apropiada basada en la elección del usuario.
    • Imprima "Invalid choice. Please try again." si el usuario ingresa una opción que no es una de las opciones válidas del menú.
    • Continúe hasta que el usuario seleccione la opción para salir del programa.

Comportamiento Esperado:

Cuando ejecutes el programa, este debería:

  1. Mostrar un menú de opciones para que el usuario elija.
  2. Permitir al usuario interactuar con la Agenda de Contactos llamando a la función apropiada.
  3. Imprimir "Invalid choice. Please try again." cuando el usuario ingrese una opción no reconocida.
  4. Salir del programa limpiamente cuando el usuario seleccione la opción "Exit".

Este paso final combina todo el conocimiento que has adquirido en una aplicación de Agenda de Contactos totalmente funcional. ¡Disfruta viendo cómo todo tu arduo trabajo cobra vida! 🎉

Pruébalo tú mismo

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

Todas las lecciones de Logic & Flow