En este artículo, aprenderás:
Qué son los ciclos while.
Para qué se usan.
Cuándo deberías usarlos.
Cómo funcionan detrás de escenas.
Cómo escribir un ciclo while en Python.
Qué son los ciclos infinitos y cómo interrumpirlos.
Para qué se usa while True y su sintaxis general.
Cómo usar una sentencia break para detener un ciclo while.
Propósito y uso de los ciclos while:
Comencemos con el propósito de los ciclos while. ¿Para qué se usan?
Los usamos para repetir una secuencia de instrucciones o sentencias un número indefinido de veces. Este tipo de ciclo se ejecuta mientras una condición dada es True (verdadera) y solo se detiene si la condición es False (falsa).
💡 Dato: la palabra while significa "mientras" en español.
Cuando escribimos un ciclo while, no definimos explícitamente cuántas iteraciones serán completadas, solo escribimos una condición que debe ser verdadera (True) para continuar el proceso y falsa (False) para detenerlo.
💡 Dato: si la condición del ciclo while nunca es falsa (False), entonces tendremos un ciclo infinito, el cual es un ciclo que en teoría nunca se detiene sin que sea interrumpido de forma externa. Por ejemplo, si se interrumpe con un atajo de teclado.
Estos son algunos ejemplos de casos reales en los cuales usaríamos un ciclo while:
Valores ingresados por el usuario: cuando le pedimos al usuario que ingrese un valor, debemos verificar si ese valor es válido. No podemos saber con anticipación cuántas veces el usuario deberá ingresar el valor antes de que el programa pueda continuar. Por lo tanto, un ciclo while sería ideal para esta situación.
Búsqueda: buscar un elemento en una estructura de datos es otro ejemplo perfecto en el cual se debería usar un ciclo while porque no podemos saber con anticipación cuántas iteraciones se necesitarán para encontrar el valor que buscamos. Por ejemplo, el algoritmo de Búsqueda Binaria puede implementarse con un ciclo while.
Desarrollo de juegos: en un juego, podríamos usar un ciclo while para mantener la lógica principal ejecutándose continuamente hasta que el jugador pierda o el juego termine. No podemos anticipar cuándo ocurrirá esto, así que es otro ejemplo perfecto de una situación en la cual un ciclo while sería muy útil.
Cómo funcionan los ciclos while
Ahora que ya sabes para qué se usan los ciclos while, veamos su lógica principal y cómo funcionan detrás de escenas cuando se ejecuta el código.
Aquí tenemos un diagrama:
Analicemos este proceso en más detalle:
El proceso inicia cuando se encuentra un ciclo while durante la ejecución del programa.
Se evalúa la condición para determinar si es verdadera o falsa (True o False).
Si la condición es verdadera (True), la secuencia de instrucciones o sentencias que pertenecen al ciclo while se ejecutan.
Nuevamente se evalúa y verifica la condición del ciclo while.
Si la condición es verdadera (True) nuevamente, la secuencia de instrucciones en el cuerpo del ciclo while se ejecutan y el proceso se repite.
Cuando la condición es falsa (False), el ciclo se detiene y el programa continúa más allá del ciclo while.
Una de las características más importantes de los ciclos while es que las variables usadas en la condición del ciclo no se actualizan automáticamente.
Nosotros tenemos que actualizar sus valores explícitamente en nuestro código para asegurarnos de que el ciclo se detendrá en algún momento, cuando la condición sea falsa (False).
🔹 Sintaxis general de los ciclos while
Genial. Ahora que ya sabes cómo funcionan los ciclos while, veamos el código y cómo puedes escribir un ciclo while en Python.
Esta es la sintaxis básica:
Estos son los elementos principales (en orden):
La palabra clave while (seguida de un espacio).
Una condición que determina si el ciclo continuará su ejecución o no en base a su valor (True o False).
Dos puntos (:) al final de la primera línea.
La secuencia de instrucciones o sentencias que se repetirán. A este bloque de código se le denomina el "cuerpo" del ciclo y debe estar indentado. Si una línea de código no está indentada, no se considerará parte del ciclo.
💡 Dato: La guía de estilo de Python (PEP 8) recomienda usar 4 espacios por nivel de indentación (sangría). La tabulación solo debe ser usada para ser consistente con código existente que ya haya sido escrito con tabuladores (tabs).
🔸 Ejemplos de ciclos while
Ahora que ya sabes cómo funcionan los ciclos while y cómo escribirlos en Python, veamos cómo funcionan detrás de escenas con algunos ejemplos.
Cómo funciona un ciclo while básico
Aquí tenemos un ciclo while básico que muestra el valor de i en el terminal mientras el valor de i es menor que 8 (i < 8).
Si ejecutamos el código, vemos el siguiente resultado:
Veamos qué ocurre detrás de escenas cuando se ejecuta el código:
Iteración 1: inicialmente, el valor de i es 4, así que la condición i < 8 evalúa a True y el ciclo inicia su ejecución. El valor de i se muestra (4) y este valor se incrementa en 1. El ciclo inicia nuevamente.
Iteración 2: ahora el valor de i es 5, así que la condición i < 8 evalúa a True. El cuerpo del ciclo se ejecuta, el valor de i se muestra (5) y el valor de i se incrementa en 1. El ciclo inicia nuevamente.
Iteraciones 3 y 4: el mismo proceso se repite para la tercera y la cuarta iteración, así que los números 6 y 7 se muestran en el terminal.
Antes de iniciar la quinta iteración, el valor de i es 8. Ahora la condición del ciclo while i < 8 evalúa a False y el ciclo while se detiene inmediatamente.
💡 Dato: si la condición del ciclo while esfalsa (False) antes de iniciar la primera iteración, el ciclo no se ejecuta. Se omite y se continúa con la ejecución del programa principal.
Valores ingresados por el usuario y el ciclo while
Ahora veamos un ejemplo de un ciclo while en un programa que recibe un valor del usuario. Usaremos la función input() para pedirle al usuario que ingrese un número entero y ese número solo será agregado a una lista si es par.
Este es el código:
La condición del ciclo while es len(nums) < 4, así que el ciclo se ejecutará mientras el tamaño (longitud) de la lista nums es estrictamente menor que 4.
Analicemos este programa en más detalle:
Comenzamos definiendo una lista vacía y la asignamos a una variable llamada nums.
Esta tabla resume lo que ocurre detrás de escenas cuando se ejecuta el código:
💡 Dato: el valor inicial de len(nums) es 0 porque la lista inicialmente está vacía. La última columna de la tabla muestra el tamaño (length) de la lista al final de la iteración actual.
Este valor se usa para verificar la condición antes de que comience la próxima iteración.
Como puedes ver en la tabla, el usuario ingresa números enteros pares en la segunda, tercera, sexta y octava iteración y estos valores son agregados a la lista nums.
Antes de que inicie una novena iteración, se verifica la condición nuevamente pero ahora es falsa (False) porque la lista nums tiene cuatro elementos (length 4), así que el ciclo while se detiene.
Si verificamos el valor de la lista nums cuando se completa el proceso, podemos ver lo siguiente:
>>> nums
[4, 2, 6, 4]
Exactamente lo que esperábamos. El ciclo while se detuvo cuando la condición len(nums) < 4 fue falsa (False).
Ahora que ya sabes cómo funcionan los ciclos while y has visto algunos ejemplos prácticos, veamos más detalles sobre un elemento clave de este tipo de ciclos: la condición.
🔹 Datos para la condición de un ciclo while
Antes de que comencemos a trabajar con ciclos while, deberías sabes que la condición del ciclo while tiene un rol muy importante en su funcionalidad y resultado.
Debes tener mucho cuidado al momento de escoger un operador de comparación porque esta es una fuente muy común de errores en el código (bugs).
Por ejemplo, estos son errores comunes:
Usar < (menor que) en lugar de <= (menor o igual que) (o viceversa).
Usar > (mayor que) en lugar de >= (mayor o igual que) (o viceversa).
Esto puede cambiar el número de iteraciones del ciclo e incluso su resultado y efecto en el programa.
Veamos un ejemplo:
Si escribimos este ciclo while con la condición i < 9:
El ciclo completa tres iteraciones y luego se detiene cuando i es igual a 9.
Esta tabla muestra lo que ocurre detrás de escenas cuando se ejecuta el código:
🔸 Ciclos while infinitos
Ahora que ya sabes cómo funcionan los ciclos while, ¿qué crees que ocurrirá si la condición nunca es falsa?
¿Qué son los ciclos while infinitos?
Recuerda que los ciclos while no actualizan las variables automáticamente (nosotros debemos hacerlo explícitamente en nuestro código).
Por lo tanto, no hay ninguna garantía de que el ciclo se detenga a menos que escribamos el código necesario para que la condición sea falsa (False) en algún momento durante la ejecución del ciclo.
Si no lo hacemos y la condición siempre es verdadera (True), entonces tendremos un ciclo while infinito, el cual es un ciclo while que (en teoría) nunca se detiene.
Los ciclos infinitos normalmente son causados por un error (bug) en el código, pero también pueden ser causados intencionalmente cuando queremos repetir una secuencia de instrucciones indefinidamente hasta que se encuentre una sentencia break.
💡 Dato: un "bug" es un error en el programa que causa resultados incorrectos o inesperados.
Veamos estos dos tipos de ciclos infinitos en los siguientes ejemplos :
🔹 Cómo crear un ciclo infinito con while True
Podemos generar un ciclo infinito intencionalmente con while True. En este caso, el ciclo se ejecutará indefinidamente hasta que el proceso sea detenido explícitamente con CTRL + C o hasta que se encuentre una sentencia break (en un momento veremos más sobre esta sentencia).
Esta es la sintaxis básica:
En este caso, el ciclo se ejecuta hasta que se presiona CTRL + C, pero Python también tiene una sentencia break que podemos usar directamente en nuestro código para detener este tipo de ciclo while.
🔸 En resumen
Los ciclos while son estructuras de programación que nos permiten repetir una secuencia de instrucciones o sentencias mientras una condición es verdadera (True). Se detienen cuando la condición es falsa (False).
Cuando escribes un ciclo while, debes asegurarte de realizar todas las actualizaciones necesarias en tu código para que el ciclo se detenga en algún momento durante la ejecución del programa.
Un ciclo infinito es un ciclo que se ejecuta indefinidamente y solo se detiene con intervención externa o cuando encuentra una sentencia break.
Puedes detener un ciclo while infinito con CTRL + C.
Puedes generar un ciclo infinito intencionalmente con while True.
La sentencia break puede ser usada para detener un ciclo while inmediatamente.⭐
Comments