Menu
Coddy logo textTech

Tudo Junto

Parte da seção Logic & Flow do Journey de Python da Coddy — lição 23 de 78.

challenge icon

Desafio

Fácil

Agora que você construiu todas as funções individuais para a Agenda de Contatos, é hora de juntá-las para criar o programa completo!


Sua Tarefa:

  1. Combine as funções que você criou:
    • display_menu: Exibe as opções do menu para o usuário.
    • add_contact: Adiciona um novo contato à Agenda de Contatos.
    • view_contact: Exibe os detalhes de um contato específico.
    • edit_contact: Atualiza as informações de um contato existente.
    • delete_contact: Remove um contato da Agenda de Contatos.
    • list_all_contacts: Exibe todos os contatos na Agenda de Contatos.
  2. Crie um dicionário chamado contact_book para armazenar os contatos.
  3. Escreva um loop que:
    • Exiba o menu usando display_menu.
    • Aceite a entrada do usuário para a escolha do menu.
    • Chame a função apropriada com base na escolha do usuário.
    • Imprima Invalid choice. Please try again. se o usuário inserir uma escolha que não seja uma das opções válidas do menu.
    • Continue até que o usuário selecione a opção para sair do programa.

Comportamento Esperado:

Quando você executar o programa, ele deve:

  1. Mostrar um menu de opções para o usuário escolher.
  2. Permitir que o usuário interaja com a Agenda de Contatos chamando a função apropriada.
  3. Imprimir Invalid choice. Please try again. quando o usuário inserir uma opção não reconhecida.
  4. Sair do programa de forma limpa quando o usuário selecionar a opção "Exit".

Esta etapa final combina todo o conhecimento que você adquiriu em um aplicativo de Agenda de Contatos totalmente funcional. Aproveite para ver seu trabalho árduo se concretizar! 🎉

Experimente você mesmo

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 as lições de Logic & Flow