Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Elif não funcionando como deveria.

Olá!

O seguinte código não está gerando o resultado que espero. Eu insiro o valor "-25" como entrada. Deveria imprimir "Fora de intervalo". Porém, imprime "Intervalo [0,25]". Socorro! rs

num = float(input());

if num>=0 and num <=25:
    print("Intervalo [0,25]");
elif num<=50:
    print("Intervalo (25,50]");
elif num<=75:
    print("Intervalo (50,75]");
elif num<=100:
    print("Intervalo (75,100]");
else:
    print("Fora de intervalo");
3 respostas
solução!

Aqui quando coloco -25 aparece Intervalo (25,50] mas corrigindo seu codigo para imprimir o valor correto ficaria assim:

num = float(input());

if num>=0 and num <=25:
    print("Intervalo [0,25]");
elif num>=0 and num<=50:
    print("Intervalo (25,50]");
elif num>=0 and num<=75:
    print("Intervalo (50,75]");
elif num>=0 and num<=100:
    print("Intervalo (75,100]");
else:
    print("Fora de intervalo");

Isso porque mesmo depois de passar do primeiro if, o numero ele pode ser menor que 0

Vi alguns problemas no seu código.

Primeiro, o Pyhton deve está se perdendo na comparação de num que é float com o 25 que é int.

Corrigindo isso, por exemplo, substituindo o 25 da comparação por 25.0, resolve esse problema.

Após corrigir isso, quando você colocar -25 em num, ele vai passar a primeira condição if, mas vai entrar na segunda porque -25 é menor que 100.0

Para corrigir isso, vc tem que colocar os limites. Veja como modifiquei seu código:

num = float(input());

if num>=0.0 and num <=25.0:
    print("Intervalo [0,25]");
elif num >25.0 and num<=50.0:
    print("Intervalo (25,50]");
elif num > 50.0 and num<=75.0:
    print("Intervalo (50,75]");
elif num > 75.0 and num<=100.0:
    print("Intervalo (75,100]");
else:
    print("Fora de intervalo");

Espero ter ajudado.

Muito obrigado pela ajuda Rodrigo e Washington. Esclareceram a minha dúvida.