Con la estructura de control while en Python podemos repetir la ejecución de un bloque de código tantas veces como la evaluación de nuestra condición devuelva True.
while mi_condicion:
código para ejecutar
Estructura while con Python
La definición de while en Python puede parecer algo confusa. Veamos algunos ejemplos que muestran que se trata de una estructura de control de Python muy sencilla y útil.
Otra tipo de bucle muy utilizado en Python es la estructura de control for.
Bucle infinito con while
Con el siguiente ejemplo vamos a generar un bucle infinito, algo que debemos evitar siempre que trabajemos con bucles.
Asignamos el valor de 1 a la variable un_numero y creamos un bucle que imprimirá en pantalla ‘Hola mundo’ siempre que la condición se cumpla.
¿Va a ser siempre 1 menor que 2? Sí, por esta razón se trata de un bucle infinito. Nuestra estructura de código solo imprime un mensaje, no modifica el valor de nuestra variable un_numero.
Te recomiendo que no ejecutes este programa en tu equipo. Lo he puesto para que se vea, no tiene sentido ejecutarlo. Si a pesar de la recomendación decides ejecutarlo, para cerrar el programa pulsa la combinación de teclas Ctrl – C.
un_numero = 1
while un_numero < 2:
print('Hola mundo')
# Hola mundo
# ...
# ...
# Hola mundo
Ahora agregaremos una operación aritmética para ir modificando el valor de nuestra variable un_numero. Modificaremos también la condición.
un_numero = 1
while un_numero < 5:
print('Hola mundo')
un_numero = un_numero + 1
# Hola mundo
# Hola mundo
# Hola mundo
# Hola mundo
Ejecutamos el bloque de código todas las veces que se cumple la condición de que un_numero sea menor que 5. Creo que se ve más claro con una traza:
Valor → un_numero | Condición → un_numero < 5 | Imprime ↓ |
1 | True | Hola mundo |
1 + 1 = 2 | True | Hola mundo |
2 + 1 = 3 | True | Hola mundo |
3 + 1 = 4 | True | Hola mundo |
4 + 1 = 5 | False | Termina bucle |
Else en el while con Python
La estructura while de Python permite ejecutar un bloque de código cuando la condición ya no se cumpla, es decir, cuando nos devuelve False. En el caso de nuestro ejemplo, esto sucedería cuando el valor de un_numero sea igual o mayor que 5.
un_numero = 1
while un_numero < 5:
print('Hola mundo')
un_numero = un_numero + 1
else:
print('La condición devuelve False')
# Hola mundo
# Hola mundo
# Hola mundo
# Hola mundo
# La condición devuelve False
Break para while
La sentencia break sirve para detener nuestro bucle de forma inmediata.
En este ejemplo podemos ver que ‘Hola mundo’ solo se imprime una vez, aun ejecutando un bucle infinito. Una vez que se ejecuta la instrucción break, salimos del while de forma inmediata.
un_numero = 1
while un_numero < 5:
print('Hola mundo')
break
# Hola mundo
Podemos utilizarlo dentro de un if para salir del bucle si se cumple una determinada condición:
un_numero = 1
while un_numero < 5:
print('Hola mundo')
un_numero = un_numero + 1
if un_numero == 3:
break
# Hola mundo
# Hola mundo