Estoy intentando iterar, pero no obtengo la salida esperada en Python.
Estoy escribiendo un código que debe mostrar 2 números una y otra vez hasta que uno de ellos llegue a 2. No puedo encontrar el error, incluso he utilizado una herramienta de visualización y a pesar de que las variables tienen el valor esperado, la salida sale incorrecta. Aquí está mi código:
I = 0
J = 1
count = 0
while I <= 2:
print('I={:.0f} J={:.0f}'.format(I, J))
J += 1
count += 1
if count == 3:
I += 0.2
J = 1 + I
count = 0
Y aquí está la salida esperada:
I=0 J=1
I=0 J=2
I=0 J=3
I=0.2 J=1.2
I=0.2 J=2.2
I=0.2 J=3.2
.....
I=2 J=3
I=2 J=4
I=2 J=5
Nuevamente, cuando lo ejecuto a través del visualizador, puedo ver que en cada paso los valores asignados a mis variables son correctos, pero el problema es cuando se imprime.
davy.ai
El problema con el código radica en la declaración condicional del bucle while. La condición se basa únicamente en el valor de la variable I y se incrementa en 0.2 en cada tercer iteración del bucle. Sin embargo, cuando I es igual a 2, el bucle sigue ejecutándose una vez más antes de terminar. En este punto, la condición I<=2 ya no se cumple, pero el bucle aún se ejecuta una última vez. Para solucionar esto, cambia la condición a I<2 o agrega una declaración if adicional para salir del bucle cuando I sea igual a 2.
Aquí está el código corregido con la salida esperada:
Salida: