Los bucles son una secuencia de instrucciones que se ejecutan hasta que se cumple una condición. Veamos cómo funcionan los bucles while en Python.

¿Qué son los bucles?

Si estás aprendiendo a programar, los bucles son uno de los conceptos principales que debe comprender. Los bucles te ayudan a ejecutar una secuencia de instrucciones hasta que se cumple una condición.

Hay dos tipos principales de bucles en Python.

  • Bucles For
  • Bucles While

Ambos tipos de bucles se pueden utilizar para acciones similares. Pero a medida que aprendas a escribir programas eficientes, sabrás cuándo usar cual.

En este artículo, veremos los bucles while en Python. Para obtener más información sobre los bucles for, consulta este artículo publicado recientemente en freeCodeCamp.

Bucles While

El concepto detrás de un ciclo while es simple: mientras una condición es verdadera -> Ejecuta mis comandos.

El bucle while comprueba la condición cada vez, y si devuelve "true", ejecutará las instrucciones dentro del bucle.

Antes de comenzar a escribir código, veamos el diagrama de flujo para ver cómo funciona.

while-loop

Ahora escribamos algo de código. Así es como se escribe un bucle while simple para imprimir números del 1 al 10.

#!/usr/bin/python

x = 1

while(x <= 10):
	print(x)
	x = x+1

Si observas el código anterior, el bucle sólo se ejecutará si x es menor o igual que 10. Si inicializa x como 20, el ciclo nunca se ejecutará.

Aquí está la salida del bucle while:

> python script.py
1
2
3
4
5
6
7
8
9
10

Bucle Do-While

Hay dos variantes del bucle while: while y do-While. La diferencia entre los dos es que do-while se ejecuta al menos una vez.

Es posible que un bucle while ni siquiera se ejecute una vez si no se cumple la condición. Sin embargo, do-while se ejecutará una vez, luego verificará la condición para bucles posteriores.

do-while

A pesar de estar presente en la mayoría de los lenguajes de programación populares, Python no tiene una declaración nativa do-while. Pero puede emular fácilmente un bucle do-while utilizando otros enfoques, como funciones.

Probemos el enfoque de hacer mientras envuelve los comandos en una función.

#!/usr/bin/python

x = 20

def run_commands():
	x = x+1
	print(x)


run_commands()
while(x <= 10):
	run_commands()

El código anterior ejecuta la función "run_commands ()" una vez antes de invocar el bucle while. Una vez que se inicia el bucle while, la función "run_commands" nunca se ejecutará ya que x es igual a 20.

While - Else

Puedes agregar una instrucción else para ejecutar si falla la condición de bucle.

Agreguemos una condición else a nuestro código para imprimir "Done" una vez que hayamos impreso los números del 1 al 10.

#!/usr/bin/python

x = 1

while(x <= 10):
	print(x)
	x = x+1
else:
	print("Done")

El código anterior imprimirá primero los números del 1 al 10. Cuando x es 11, la condición while fallará, desencadenando la condición else.

Sentencia While en una única línea

Si solo tiene una sola línea de código dentro de tu  bucle while, puedes usar la sintaxis de una sola línea.

#!/usr/bin/python

x = 1
while (x): print(x)


Bucles infinitos

Si no tienes cuidado al escribir bucles, creará bucles infinitos. Los bucles infinitos son aquellos en los que la condición siempre es cierta.

#!/usr/bin/python

x = 1
while (x >= 1):
	print(x)

El código anterior es un ejemplo de un bucle infinito. No hay ningún comando para alterar el valor de x, por lo que la condición "x es mayor o igual que 1" es siempre verdadera. Esto hará que el bucle funcione para siempre.

Tenga siempre cuidado al escribir bucles. Un pequeño error puede provocar un bucle infinito y bloquear su aplicación.

Control de bucles

Finalmente, veamos cómo controlar el flujo de un bucle mientras se está ejecutando.

Cuando esté escribiendo aplicaciones del mundo real, a menudo se encontrará con escenarios en los que necesita agregar condiciones adicionales para omitir un bucle o salir de un bucle.

Break

Veamos cómo salir del ciclo mientras la condición es verdadera.

#!/usr/bin/python

x = 1
while (x <= 10):
    if(x == 5):
    	break
    print(x)
    x += 1

En el código anterior, el bucle detendrá la ejecución cuando x sea 5, a pesar de que x sea mayor o igual que 1.

Continue

Aquí hay otro escenario: digamos que desea omitir el bucle si se cumple una determinada condición. Sin embargo, desea continuar con las ejecuciones posteriores hasta que la condición principal while se vuelva falsa.

Puede usar la palabra clave "continuar" para eso, así:

#!/usr/bin/python

x = 1
while (x <= 10):
    if(x == 5):
    	x += 1
    	continue
    print(x)

En el ejemplo anterior, el bucle se imprimirá de 1 a 10, excepto 5. Cuando x es 5, el resto de los comandos se omiten y el flujo de control vuelve al inicio del bucle while.

Resumen

Los bucles son uno de los componentes más útiles en la programación que utilizará a diario.

For y while son los dos bucles principales en Python. El bucle while tiene dos variantes, while y do-while, pero Python solo admite la primera.

Puede controlar el flujo del programa utilizando los comandos 'interrumpir' y 'continuar'. Siempre tenga en cuenta la creación accidental de bucles infinitos.

Escribo regularmente sobre temas que incluyen Inteligencia Artificial y Ciberseguridad. Si te gustó este artículo, puedes leer mi blog aquí.

Traducido del artículo de Manish Shivanandhan - Python While Loop Tutorial – Do While True Example Statement