Curso
El bucle while se parece en cierto modo a una sentencia if: ejecuta el código interno si la condición es verdadera. Sin embargo, a diferencia de if, el bucle while sigue ejecutando el código de forma repetida mientras la condición sea verdadera.
El bucle while

La sintaxis del bucle while es muy similar a la de la sentencia if, como ves arriba. El bucle while no es el más habitual, pero en algunos casos puede ser muy útil.
Ejemplo
Imagina que estás calculando numéricamente un modelo a partir de tus datos. Normalmente esto implica repetir los mismos pasos hasta que el error entre tu modelo y tus datos esté por debajo de cierto umbral. Cuando puedas reformular el problema como repetir una acción hasta que se cumpla una condición, un bucle while suele ser la mejor opción.
En el siguiente ejemplo, empiezas con un error igual a 50.0. A continuación, escribirás un bucle while cuya condición es error > 1, de modo que el bucle se ejecute mientras el error sea mayor que 1. Dentro del bucle, divides el error entre cuatro y actualizas la variable de error. Al ejecutarlo por primera vez, obtenemos 12.5.

Python vuelve entonces a evaluar la condición del bucle while con el nuevo error, 12.5. La condición vuelve a ser verdadera y el código se ejecuta.

Python vuelve de nuevo a la condición del bucle while e intenta ejecutar el código otra vez. Como 3.125 es mayor que 1, el código realiza el cálculo.

Por último, la nueva condición del bucle while es menor que 1, así que el código lanza un error y deja de ejecutarse.

Este ejemplo te será útil porque ha llegado el momento de crear tu propio bucle while. Vamos a programar un bucle while que implemente un sistema de control muy básico para un péndulo invertido. Si hay una desviación respecto a la vertical perfecta, el bucle while irá corrigiendo esa desviación poco a poco.
Ten en cuenta que si tu bucle while tarda demasiado en ejecutarse, puede que hayas cometido un error. En particular, recuerda indentar correctamente el contenido del bucle.
Ejemplo de error con while (ejecución continua)
Imagina que comentas o eliminas la actualización del valor de error y vuelves a ejecutar el script. El error no se actualizará y la condición siempre será verdadera. Esto hará que el bucle while se ejecute indefinidamente.

Si cometieras este error en tu sistema, tendrías que interrumpir el programa de Python pulsando las teclas Control + C.
Ejemplo
En el ejemplo siguiente, crearás la variable offset con un valor inicial de 8. Después escribirás un bucle while que siga ejecutándose mientras offset sea distinto de 0.
Dentro del bucle while:
- Imprimirás el texto
"correcting...". - Después, disminuirás el valor de
offseten 1. Puedes hacerlo conoffset = offset - 1. - Por último, dentro del bucle, imprime
offsetpara ver cómo va cambiando.

Al ejecutar el programa anterior, obtenemos el siguiente resultado:
correcting...
7
correcting...
6
correcting...
5
correcting...
4
correcting...
3
correcting...
2
correcting...
1
correcting...
0
Para aprender más sobre los bucles while, echa un vistazo a este vídeo de nuestro curso Intermediate Python.
Este contenido está extraído del curso Intermediate Python de DataCamp, impartido por Hugo Bowne-Anderson.
Consulta también nuestro tutorial de bucles en Python y el tutorial Cómo emular un bucle do-while en Python para seguir aprendiendo y practicando con bucles en Python hasta dominar el tema.