Ir para conteúdo
Fórum Script Brasil
  • 0

Menu em python


Rogério Alves

Pergunta

Alguém pode me ajudar. Estou fazendo um cadastro simples de cliente para um trabalho da faculdade. Criei um menu e estou fazendo as seguintes funções, mas estou com o seguinte problema: Sempre que você terminar de cadastrar um cliente, o programa perguntará se deseja cadastrar outro, se a resposta for não, o usuário teria que ir de volta ao menu principal. Estou tentando usar a função return, mas não consigo retornar ao menu e selecionar outra opção.

Aqui está tudo o que eu fiz.

#lista de variaveis
lista_clientes = []
#menu principal
def menu_principal():
    print('----------MENU PRINCIPAL----------')
    print('(1) Cadastrar novo cliente')
    print('(2) Consultar cliente')
    print('(3) Editar cliente')
    print('(4) Excluir cliente')
    print('(0) Sair')
menu_principal()

#caso escolham uma opção diferente do menu
first_choise = int(input('Escolha a função desejada: '))
while first_choise < 0 or first_choise > 5:
    print('Opção inválida. Por favor, selecione uma das opções do menu.')
    first_choise = int(input('Escolha a função desejada: '))
else:
#fechar programa
    if first_choise == 0:
        print("Programa desenvolvido por @roddyzera. Obrigado por utilizar.")
        import time, sys
        for i in range(0, 10):
            sys.stdout.write("\r{}".format(i))
            sys.stdout.flush()
            time.sleep(1)
        exit()
#cadastrar novo cliente
    elif first_choise == 1:
        print('Cadastrar novo cliente.')
        ident = input('ID: ')
        nome = input('Nome: ')
        telefone = input('Telefone: ')
        endereco = input('Endereço: ')
        print('{}, {}, {}'.format(nome, telefone, endereco))
        lista_clientes.append((ident, nome, telefone, endereco))
        cadastrar_de_novo = input('Deseja cadastrar novo cliente? [s/n]: ')
        while cadastrar_de_novo == 's':
            print('Cadastrar novo cliente.')
            ident = input('ID: ')
            nome = input('Nome: ')
            telefone = input('Telefone: ')
            endereco = input('Endereço: ')
            print('{}, {}, {}'.format(nome, telefone, endereco))
            lista_clientes.append((ident, nome, telefone, endereco))
            cadastrar_de_novo = input('Deseja cadastrar novo cliente? [s/n]: ')
        else:
            first_choise = menu_principal()
#consultar cliente
    elif first_choise == 2:
        print(lista_clientes)

    elif first_choise == 3:
        print('Consultar cliente.')

    elif first_choise == 4:
        print('Consultar cliente.')

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
# Lista de variáveis
lista_clientes = []

# Menu principal
def menu_principal():
    print('----------MENU PRINCIPAL----------')
    print('(1) Cadastrar novo cliente')
    print('(2) Consultar cliente')
    print('(3) Editar cliente')
    print('(4) Excluir cliente')
    print('(0) Sair')

def cadastrar_cliente():
    print('Cadastrar novo cliente.')
    ident = input('ID: ')
    nome = input('Nome: ')
    telefone = input('Telefone: ')
    endereco = input('Endereço: ')
    lista_clientes.append((ident, nome, telefone, endereco))
    print(f'Cliente cadastrado: {nome}, {telefone}, {endereco}')

def consultar_cliente():
    if not lista_clientes:
        print('Nenhum cliente cadastrado.')
        return
    ident = input('Digite o ID do cliente que deseja consultar: ')
    cliente_encontrado = next((c for c in lista_clientes if c[0] == ident), None)
    if cliente_encontrado:
        print(f'Cliente encontrado: ID: {cliente_encontrado[0]}, Nome: {cliente_encontrado[1]}, Telefone: {cliente_encontrado[2]}, Endereço: {cliente_encontrado[3]}')
    else:
        print('Cliente não encontrado.')

def editar_cliente():
    if not lista_clientes:
        print('Nenhum cliente cadastrado.')
        return
    ident = input('Digite o ID do cliente que deseja editar: ')
    cliente_index = next((index for index, c in enumerate(lista_clientes) if c[0] == ident), None)
    if cliente_index is not None:
        cliente = lista_clientes[cliente_index]
        novo_nome = input(f'Novo nome ({cliente[1]}): ') or cliente[1]
        novo_telefone = input(f'Novo telefone ({cliente[2]}): ') or cliente[2]
        novo_endereco = input(f'Novo endereço ({cliente[3]}): ') or cliente[3]
        lista_clientes[cliente_index] = (ident, novo_nome, novo_telefone, novo_endereco)
        print(f'Cliente atualizado: ID: {ident}, Nome: {novo_nome}, Telefone: {novo_telefone}, Endereço: {novo_endereco}')
    else:
        print('Cliente não encontrado.')

def excluir_cliente():
    if not lista_clientes:
        print('Nenhum cliente cadastrado.')
        return
    ident = input('Digite o ID do cliente que deseja excluir: ')
    cliente_index = next((index for index, c in enumerate(lista_clientes) if c[0] == ident), None)
    if cliente_index is not None:
        cliente = lista_clientes.pop(cliente_index)
        print(f'Cliente excluído: ID: {cliente[0]}, Nome: {cliente[1]}, Telefone: {cliente[2]}, Endereço: {cliente[3]}')
    else:
        print('Cliente não encontrado.')

# Função principal
def main():
    while True:
        menu_principal()
        try:
            first_choice = int(input('Escolha a função desejada: '))
        except ValueError:
            print('Opção inválida. Por favor, selecione uma das opções do menu.')
            continue

        if first_choice == 0:
            print("Programa desenvolvido por @roddyzera. Obrigado por utilizar.")
            import time, sys
            for i in range(10, -1, -1):
                sys.stdout.write("\r{}".format(i))
                sys.stdout.flush()
                time.sleep(1)
            break
        elif first_choice == 1:
            while True:
                cadastrar_cliente()
                cadastrar_de_novo = input('Deseja cadastrar novo cliente? [s/n]: ')
                if cadastrar_de_novo.lower() != 's':
                    break
        elif first_choice == 2:
            consultar_cliente()
        elif first_choice == 3:
            editar_cliente()
        elif first_choice == 4:
            excluir_cliente()
        else:
            print('Opção inválida. Por favor, selecione uma das opções do menu.')

if __name__ == "__main__":
    main()
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...