Menu
Coddy logo textTech

Todo Junto

Parte de la sección Lógica y flujo del Journey de Python de Coddy. Lección 23 de 78.

challenge icon

Desafío

Fácil

Ahora que has creado 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ú al 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 de 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 opción del menú.
    • Llame a la función correspondiente según la opción del usuario.
    • Imprima Invalid choice. Please try again. si el usuario introduce 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, debería:

  1. Mostrar un menú de opciones para que el usuario elija.
  2. Permitir que el usuario interactúe con la Agenda de contactos llamando a la función correspondiente.
  3. Imprimir Invalid choice. Please try again. cuando el usuario introduzca una opción no reconocida.
  4. Salir del programa correctamente cuando el usuario seleccione la opción "Exit".

Este paso final combina todos los conocimientos que has adquirido en una aplicación de Agenda de contactos completamente funcional. ¡Disfruta viendo cómo todo tu esfuerzo 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 Lógica y flujo

Practica por tu cuenta: Compilador de Python online