Curso de introducción a la programación con python

Autor: Luis Fernando Apáez Álvarez

Clase 7: Bucle while

Comenzaremos esta clase trabajando con el bucle while. Éste se usa de manera iterativa sobre una o más líneas de código ejecutándose siempre que la condición del while sea verdadera. while en español significa "mientras", lo cual nos brinda una idea muy intuitiva de cómo funcionará. El diagrama de flujo del bucle while es el siguiente:

Donde, mientras la condición dada para el bucle while sea verdadera, entonces las operaciones/procesos serán ejecutados. Podemos ver claramente la parte del diagrama de flujo que hace alusión al bucle:

Captura-2.PNG

El bucle while es de gran utilidad pues, por ejemplo, si desearamos ejecutar una instrucción en python 1000 veces y con base en esas 1000 ejecuciones seguir trabajando con nuestro código, bastará con implementar un bucle while para escribir muchas menos líneas de código y optimizar nuestro tiempo de programación. De hecho, lo anterior es tan sólo un pequeño caso de lo que podemos hacer con los bucles. La sintaxis básica del bucle while es

Por ejemplo en el siguiente código

inicializamos una variable x y colocamos como condición del while que x <= 10. En la operación que se ejecutará dentro del while hemos colocado un incremento de 2 en la variable x y un mensaje de salida. El comportamiento de x es

  1. x = 0, primera iteración realizada, la condición x <= 10 continúa siendo verdadera
  2. x = 0 + 2 = 2, segunda iteración realizada, la condición x <= 10 continúa siendo verdadera
  3. x = 2 + 2 = 4, tercera iteración realizada, la condición x <= 10 continúa siendo verdadera
  4. x = 4 + 2 = 6, cuarta iteración realizada, la condición x <= 10 continúa siendo verdadera
  5. x = 6 + 2 = 8, quinta iteración realizada, la condición x <= 10 continúa siendo verdadera
  6. x = 8 + 2 = 10, sexta iteración realizada, la condición x <= 10 continúa siendo verdadera
  7. x = 10 + 2 = 12, la condición x <= 10 es falsa por lo que el bucle es interrumpido y python pasa a ejecutar el código inmediato que sigue. En este caso ejecutamos un print.

Así, como la condición fue verdadera seis veces, entonces se imprimió seis veces el mensaje "Iteración realizada". Cabe resaltar que, como sucedía en el condicional if, debemos de tener cuidado con la identación.

Podemos considerar otro ejemplo

En este ejemplo hemos clarificado un poco cómo el valor de la variable y va cambiando de acuerdo a cada iteración. Cuando la condición es falsa pasamos a la siguiente línea de código print("fin").

Observación: Es posible que cometamos el error de ejecutar un bucle infinito. Por ejemplo, del código anterior, si eliminamos la parte en que aumentamos el valor de la variable y, entonces ésta tendrá asignado el valor de 0 a lo largo de todo el bucle. Es por ello que la condición del bucle while siempre será verdadera y por ende el bucle será un bucle infinito. Veamos

El cual sino lo detenemos continuará ejecutándose. Una manerá de evitar bucles infinitos es colocar break (que en español significa quebrar o romper) el cual hace que python pase a ejecutar la instrucción inmediata siguiente al bucle while

Notemos que el código dentro del while sólo se ejecutó una vez gracias al break.

También podemos ocupar un else como en el condicional if. De esta manera el bucle while ejecutará otra acción cuando su condición sea falsa.

Donde, cuando z = 8 la condición dentro del while es falsa, entonces ejecutamos la instrucción dentro del else. Ésta imprime el valor actual de z (justo el que hace que la condición del while sea falsa) y da un mensaje para indicar que el bucle ha finalizado.

Socialmedia.PNG