C贸mo detener un bucle While en Python

Rate this post

Python proporciona tres formas de detener un bucle while:

  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.
  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.
  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.

Puedes ver cada uno de estos tres m茅todos para terminar un bucle while en el siguiente gr谩fico:

How to Stop a While Loop in Python
Figura: Terminar un bucle while mediante (a) la condici贸n del bucle, (b) la palabra clave break, o (c) la palabra clave continue.

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.

English Version of Article

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… 馃檪