Python proporciona tres formas de detener un bucle while:
- La condición del bucle while se comprueba una vez por iteración. Si se evalúa como False, el programa finaliza el bucle y procede con la primera instrucción después de la construcción del bucle.
- La palabra clave break termina un bucle inmediatamente. El programa procede con la primera instrucción después de la construcción del bucle.
- La palabra clave continue termina sólo la iteración actual, pero no todo el bucle. El programa procede con la primera instrucción en el cuerpo del bucle.
Puedes ver cada uno de estos tres métodos para terminar un bucle while en el siguiente gráfico:
Para ejemplificar estos métodos, aprenderás a usar cada uno de ellos para lograr lo mismo: eliminar el primer carácter de una cadena hasta que sólo queden 5 elementos.
También puedes ver mi vídeo explicativo a medida que avanzas en el artículo:
Método 1: Condición del bucle While
La forma más pitónica de terminar un bucle while es utilizar la condición while que sigue inmediatamente después de la palabra clave while
y antes de los dos puntos, tal y como while <condition>: <body>
. Si la condición se evalúa como False
, el programa procede con la siguiente instrucción después de la construcción del bucle. Esto termina inmediatamente el bucle.
Aquí tenemos un ejemplo que muestra cómo el bucle while termina tan pronto como una cadena dada consta de 5 o menos caracteres. En cada iteración, se reduce la longitud de la cadena en la variable s en uno mediante el rebanado de la cadena, por lo que el bucle acabará en algún momento, sin importar la longitud inicial de la cadena.
s = 'hello world' while len(s) > 5: s = s[1:] print(s) # world
Método 2: Palabra clave “break”
Si el programa ejecuta una instrucción con la palabra clave break
, el bucle termina inmediatamente. No se ejecuta ninguna otra instrucción en el cuerpo del bucle y el programa procede con la primera instrucción después de la construcción del bucle. En la mayoría de los casos, usarías la palabra clave break
en un constructo if para decidir dinámicamente si un bucle debe terminar, o no.
En el siguiente ejemplo, creamos una cadena con 11 caracteres e introducimos un bucle while indefinido con una condición de bucle que siempre se cumple (while True
). Si no terminaras el bucle prematuramente en el cuerpo del bucle, Python ejecutaría este código para siempre.
s = 'hello world' while True: if len(s) > 5: s = s[1:] else: break print(s) # world
Afortunadamente, se añade un constructo if que contiene la palabra clave break
en la rama else. Tan pronto como la condición if
se evalúe como False
, la rama else
se procesará y la sentencia break
se ejecutará: el bucle termina.
Solo una cadena con 5 o menos caracteres hace que la condición if
se evalúe como False
, por lo que el bucle termina tan pronto como s contenga la cadena 'world'
.
Método 3: Palabra clave “continue”
La palabra clave continue
termina sólo la iteración actual, pero no todo el bucle. El programa procede con la primera instrucción en el cuerpo del bucle. El uso más común de continue es evitar la ejecución de ciertas partes del cuerpo del bucle, restringido por una condición marcada en un constructo if.
Aquí hay un ejemplo:
s = 'hello world' while len(s) > 5: s = s[1:] if len(s) > 5: continue print(s) # world
Empiezas con la misma cadena 'hello world'
. Python comprueba si la cadena tiene más de 5 caracteres en la condición del bucle while, que es el caso.
Luego, entra en el cuerpo del bucle y esencialmente reduce la longitud de la cadena en uno. Ahora, comprueba si len(s) > 5
, lo que sigue siendo True
mientras la cadena tenga más de 5 caracteres. En estos casos, se ejecuta la instrucción continue
y Python finaliza inmediatamente la iteración actual y procede con la condición de bucle mientras len(s) > 5
.
Sin embargo, tan pronto como la cadena s
conste de sólo 5 caracteres 'world'
, la rama if no se ejecuta y la sentencia continue
se omite. En su lugar, imprime la cadena en la consola y comprueba la condición del bucle, que no se cumple, por lo que abandona el bucle.
Aunque el cuerpo del bucle se ha ejecutado varias veces, la instrucción print()
se ejecutó una sola vez.
Chuleta de palabras clave de Python
Puedes conocer las palabras clave más importantes de Python en esta breve chuleta -¡si eres como yo, también te apasionarán las chuletas!
Puedes descargarlo desde aquí:
Resumen
Has aprendido tres formas de terminar un bucle while.
Método 1: La condición del bucle while se comprueba una vez por iteración. Si se evalúa como False, el programa finaliza el bucle y procede con la primera instrucción después de la construcción del bucle.
Método 2: La palabra clave break
termina un bucle inmediatamente. El programa procede con la primera instrucción después de la construcción del bucle.
Método 3: La palabra clave continue
termina sólo la iteración actual, pero no todo el bucle. El programa procede con la primera instrucción en el cuerpo del bucle.
Gracias por leer este tutorial: si quieres mejorar aún más tus habilidades con Python, te recomiendo que consultes mi academia gratuita de correo electrónico y descargues las lecciones y hojas de trucos gratuitas de Python aquí:
acompáñanos, es más… 🙂