1
resposta

[Dúvida] Dúvida if / elif

Quando seleciono uma das 4 opções, o código retorna a opção selecionada corretamente, porém imediatamente cai na condição do else, limpando o console. Sabem qual é o erro?

Função para seleção da opção pelo usuário.

def selecionar_opcao(): opcao_escolhida = int(input('Escolha uma opção: ')) if opcao_escolhida == 1: print('1. Cadastrar restaurante') elif opcao_escolhida == 2: print('2. Listar restaurantes') elif opcao_escolhida == 3: print('3. Ativar restaurante') elif opcao_escolhida == 4: print('4. Operação finalizada') else: finalizar_app()

Função para finalizar a aplicação caso o usuário selecione a opção 4, limpando o terminal.

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

    Resultado: 
    
    Escolha uma opção: 1
  1. Cadastrar restaurante Finalizando o app...
1 resposta

Olá, Bruno.

Tudo bem?

Pelo que você descreveu, parece que o problema está no comportamento do else que está sendo executado mesmo quando uma das opções válidas (1, 2, 3 ou 4) é escolhida. Isso acontece porque o else na sua função selecionar_opcao() é executado sempre que a condição do if e dos elif não são satisfeitas. No entanto, a condição para a opção 4 também deveria impedir que o else fosse executado.

Uma solução seria ajustar a lógica para que o else só seja chamado se uma opção inválida (diferente de 1, 2, 3 e 4) for inserida. Aqui está uma sugestão de como você poderia modificar o código:

def selecionar_opcao():
    opcao_escolhida = int(input('Escolha uma opção: '))
    if opcao_escolhida == 1:
        print('1. Cadastrar restaurante')
    elif opcao_escolhida == 2:
        print('2. Listar restaurantes')
    elif opcao_escolhida == 3:
        print('3. Ativar restaurante')
    elif opcao_escolhida == 4:
        finalizar_app()
    else:
        print("Opção inválida. Por favor, escolha uma opção entre 1 e 4.")

Com essa alteração, a função finalizar_app() só será chamada se a opção 4 for escolhida, e o else informará ao usuário que a opção é inválida se ele digitar qualquer outro número fora do intervalo 1-4.

Espero ter entendido e que essa modificação resolva o problema que você está enfrentando! Qualquer coisa pode mandar aqui de novo. Bons estudos!