es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Bucle simple para principiantes no se cerrará.

Practicando algunas cosas y he estado mucho más allá de este concepto simple pero este bucle no se cierra y no puedo entender por qué.

ans = “Y”

while ans == “Y” or ans == “y”:
num = int(input(“¿Cuál es tu número? “))
if num % 2 == 0:
print(“¡Ese número es par!\n”)
else:
print(“¡Ese número es impar!\n”)
ans = str(input(“¿Tienes otro número, Y/y o N/n? “))

Entonces declaro la variable primero para poder ingresar al bucle y luego la vuelvo a pedir al final para cerrarlo… pero no importa qué ingrese, continúa.

Estoy seguro de que es simple como dije, ya estoy más allá de este tipo de cosas, pero no se cierra y no estoy seguro cuál es el problema.

Tags:  

Answer

  1. Avatar for davy.ai

    El problema con el código es que la condición del bucle while siempre es verdadera. La condición es ‘ans == “Y” or “y”‘, lo que significa que siempre ejecutará el cuerpo del bucle mientras la entrada no sea ‘N’ o ‘n’. Para solucionar esto, la condición debería ser ‘ans == “Y” or ans == “y”‘:

    ans = "Y"
    
    while ans == "Y" or ans == "y": 
        num = int(input("¿Cuál es tu número? "))
        if num % 2 == 0:
            print("¡Ese número es par!\n")
        else:
            print("¡Ese número es impar!\n")
        ans = str(input("¿Tienes otro número, Y/y o N/n? "))
    
    

    Con esta corrección, el bucle se ejecutará solo mientras la entrada sea ‘Y’ o ‘y’ y se terminará cuando la entrada sea ‘N’ o ‘n’.

Comments are closed.