1
resposta

Novo produto

O que tem de errado com o meu código, que quando cadastro o novo produto ele volta pro menu principal, sem eu teclar nada?

import os

produtos = []

def exibir_opcoes():
    print('1. Cadastrar identificador do produto')
    print('2. Cadastrar nome do produto')
    print('3. Cadastrar categoria do produto')
    print('4. Cadastrar marca do produto')
    print('5. Cadastrar preço unitário do produto')
    print('6. Cadastrar a data de cadastro do produto')
    print('7. Sair\n')

def finalizar_app():
    os.system('cls')
    print('Finalizando o app')

    
def opcao_invalida():
    print('Opção inválida')
    input('Digite uma nova tecla para retornar ao menu principal')
    os.system('cls')
    main()


def cadastrar_novo_produto():
    os.system('cls')
    print('Cadastro de novos produtos')
    nome_do_produto = input('Digite o nome do produto que deseja cadastrar: ')
    produtos.append(nome_do_produto)
    print(f'O produto {nome_do_produto} foi cadastrado com sucesso')
    print('Digite uma tecla para voltar ao menu principal')
    main()


def escolher_opcao():
    try:
        opcao_escolhida = int(input('Escolha uma opção: '))

        if opcao_escolhida == 1:
            cadastrar_novo_produto()
        elif opcao_escolhida == 2:
            print('Cadastrar nome do produto')
        elif opcao_escolhida == 3:
            print('Cadastrar categoria do produto')
        elif opcao_escolhida == 4:
            print('Cadastrar marca do produto')
        elif opcao_escolhida == 5:
            print('Cadastrar preço unitário do produto')
        elif opcao_escolhida == 6:
            print('Cadastrar a data de cadastro do produto')
        elif opcao_escolhida == 7:
            finalizar_app()  
        else: 
            opcao_invalida()
    except: 
        opcao_invalida()        

def main():
    os.system('cls')
    exibir_opcoes()
    escolher_opcao()
    

if __name__ == '__main__':
    main()
1 resposta

Olá Marianna! Tudo bem?

Após cadastrar o produto, o código está chamando a função main() sem esperar que você pressione uma tecla. Isso faz com que o programa retorne imediatamente ao menu principal.

Para corrigir isso, você pode adicionar uma pausa antes de chamar a função main(), permitindo que você veja a mensagem antes de voltar ao menu. Você pode fazer isso usando a função input() para esperar que o usuário pressione uma tecla. Aqui está como você pode ajustar o código:

def cadastrar_novo_produto():
    os.system('cls')
    print('Cadastro de novos produtos')
    nome_do_produto = input('Digite o nome do produto que deseja cadastrar: ')
    produtos.append(nome_do_produto)
    print(f'O produto {nome_do_produto} foi cadastrado com sucesso')
    input('Digite uma tecla para voltar ao menu principal')  # Adicionando pausa aqui
    main()

Com essa alteração, após o produto ser cadastrado, o programa vai esperar que você pressione uma tecla antes de voltar ao menu principal. Isso deve resolver o problema que você está enfrentando.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.