Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Problema com elif em while

Olá, estou com um código que não entendo por que não está executando.

numero = 0

while (numero%2 == 0):
    numeroInput = input("Informe apenas números pares: ")

    numero = int(numeroInput)

    if(numero > 100):
        print("Número maior que 100!")

    elif(numero > 1000):
        print("Número maior que 1000!")
        break
else:
    print("Esse é um número ímpar!")

O código ao digitar 102, entra no if. Todo caso, quando for um número par maior que mil, não entra no elif e não termina o laço. O que está errado?

1 resposta
solução!

O código só entra no elif se a condição anterior for falsa. No caso, quando vc entra 1001 por exemplo, ele vai entrar no if(numero > 100), porque 1001 é maior que 100, logo não vai entrar no elif (que significa else if, ou senão). Você poderia fazer assim:

if(numero > 100 and numero <= 1000):
    print("Número maior que 100!")
elif(numero > 1000):
    print("Número maior que 1000!")
    break

Coloquei o numero <= 1000 porque senão o 1000 não seria capturado em nenhum dos grupos.


Vc tb poderia fazer assim, que vai imprimir os dois e sair: "Número mair que 100!" e "Número maior que 1000!"

if(numero > 100):
    print("Número maior que 100!")
if(numero > 1000):
    print("Número maior que 1000!")
    break