Olá, João Victor. Tudo bem?
O problema está na função voltar_ao_menu_principal
. Nela, você chama a função main
diretamente, o que faz com que o menu seja exibido novamente, mas sem encerrar corretamente a execução da função atual. Isso pode causar comportamento inesperado, como mensagens de outra função sendo exibidas.
Para corrigir isso, remova a chamada direta ao main
em voltar_ao_menu_principal
e ajuste a lógica para controlar melhor o fluxo do programa. Veja como ajustar:
def voltar_ao_menu_principal():
input('\nDigite uma tecla para voltar ao menu principal')
# Remova a chamada para main aqui
Em seguida, altere o fluxo dentro da função escolhe_opcao
para garantir que o menu principal seja chamado corretamente, sem redundâncias. Atualize a função assim:
def escolhe_opcao():
while True: # Adiciona um loop para manter o programa ativo
try:
numero = int(input('\nSelecione uma opção: '))
match numero:
case 1:
exibe_titulo('Cadastrar restaurante')
cadastra_restaurante()
case 2:
exibe_titulo('Lista de restaurantes cadastrados')
listar_restaurante()
case 3:
exibe_titulo('Alternar estado do restaurante')
alternar_estado_do_restaurante()
case 4:
exibe_titulo('Finalizando aplicativo')
break # Sai do loop e finaliza o programa
case _:
opcao_invalida()
voltar_ao_menu_principal() # Chame após executar qualquer opção
except:
opcao_invalida()
voltar_ao_menu_principal()
Com essas alterações:
voltar_ao_menu_principal
agora apenas pausa para o usuário ler as mensagens, sem reiniciar o fluxo.- O loop em
escolhe_opcao
mantém o programa funcionando até que a opção "Finalizar" seja escolhida.
Fico à disposição. Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!