Imagen con el logo y texto del lenguaje de programación Python.

Bucles while y for con Python

Los bucles, son un concepto de programación que nos permite repetir líneas de código determinado número de veces hasta que se cumpla una condición para que deje de ejecutarse el proceso de bucle.

¿Cuándo crear un bucle?

Cuando el problema u objetivo de software que deseas resolver a través de la programación tiene un proceso que se repite determinado número de veces; es el momento de implementar bucles en tu código.

Los bucles pueden ejecutarse el número de veces que se desee, desde 2, 10, 100 o 10000 veces. Si no existieran los bucles en la programación, tendrías que escribir las líneas de código que repiten un mismo proceso, las veces que las necesitaras. Cosa que obviamente no existe.

Pero la lógica de los bucles se debe plantear bien y también debe asegurarse que en determinado momento el bucle deje de funcionar. Si no hay una lógica correcta y si no hay una manera de salir del bucle, el procedimiento correrá de forma infinita y termina bloqueando el equipo en el que se esté ejecutando la aplicación.

Por suerte, mientras probamos código tenemos la manera de suspender la ejecución del programa, pero para las personas que utilizan la aplicación no hay más salida que intentar cerrarla o incluso, apagar su dispositivo.

Bucle while de Python

En todos los lenguajes de programación existen los bucles para ejecutar líneas de código determinado número de veces y el bucle “while” existe de forma nativa en Python.

El bucle “while” significa “mientras” del inglés y tiene todo el sentido; indica que se ejecuten líneas de código dentro del bucle mientras se cumpla una condición. Esto indica, que el bucle “while” se ejecuta como mínimo una vez de ser invocado.

Sintaxis del bucle “while” en Python

while condicion:
    pass
  • while. Indica en Python el inicio del bucle “while”.
  • condicion. Es la condición que indica la cantidad de veces que debe ejecutarse el bucle mientras se cumpla la condición. Un ejemplo de condición puede ser numero < 1. Lo que indica que el bucle se ejecutaría n número de veces, siempre y cuando, la variable numero sea inferior a 1; cuando la variable numero valga 2, el bucle dejará de funcionar.
  • “:”. Los dos puntos indican el paso a ejecutar el siguiente bloque de código.

Ejemplo de bucle “while” en Python

Deseamos conocer lo números elevados al cuadrar hasta el 100.

def run():
    LIMITE = 1000
    contador = 0
    potencia_2 = 2** contador

    while potencia_2 < LIMITE:
        print('2 Elevado a ' + str(contador) + ' es igual a: ' + str(potencia_2))
        contador = contador + 1
        potencia_2 = 2** contador      

if __name__ == '__main__':
    run()

Este bucle se ejecutará siempre y cuando “potencia_2” tenga un valor inferior al “LIMITE”, entonces cuando “potencia_2” tenga un valor superior a 1000, el bucle “while” dejará de funcionar, porque dejó de cumplirse la condición que hacía que se ejecutara.

Ciclo for en Python

Para crear un ciclo “for” en Python la sintaxis es la siguiente:

for variable in range(x):	
    pass

Se leería de la siguiente manera: “Para la variable en el rango x, hacer lo siguiente”

Ejemplo

Se desea imprimir en pantalla los números del 1 al 1000.

def run():
    for contador in range(1, 1001):
        print(contador)

if __name__ == '__main__':
    run()

range(1, 1001), es una función que proporciona un conjunto de números con dos parámetros: el primer parámetro es el número desde donde inicia el rango y el segundo parámetro es el número hasta donde llega el rango.

Se debe tener en cuenta que el número límite del rango debe tener -1, porque el conteo inicia desde 0. Por eso, el rango inicia en 1 y finaliza en 1001, esto para imprimir los números del 1 al 1000.

La variable “contador” se define y se inicializa dentro del ciclo con un valor de 0. Sin embargo, al estar en el ciclo toma el valor inicial de la función range(1, 1001), que en la primera vez que ejecuta el ciclo tiene el valor de 1.

El ciclo “for”, evalúa si la variable contador está dentro del rango de 1 hasta 1001 range(1, 1001). Si esto es verdadero, el for ejecuta la línea de código print(contador).

Después de ejecutar la línea de código, el ciclo “for” actualiza su estado y suma “1” al primer parámetro del rango y asigna ese valor a la variable “contador”. Es decir, la variable contador toma el valor del valor inicial que tiene el rango, cada vez que este se actualiza.

De nuevo, el ciclo “for” evalúa si la variable contador está dentro del rango, y así el ciclo se sigue ejecutando hasta que la variable “contador” tenga un valor de “1001”.

Cuando el rango llega al valor de “1001”, el ciclo “for” deja de ejecutarse. Y así imprime los números desde el 0 hasta el 1000.

Hacer recorridos de estructuras de datos con el ciclo for de Python

El ciclo “for” es muy utilizado para recorrer estructuras de datos. Por ejemplo, tenemos una cadena de caracteres que componen el nombre “escuelawow”, con el ciclo “for” podemos hacer un recorrido por esa cadena de caracteres a través de cada elemento (letra) que compone la palabra completa.

Ejemplo

Deseamos recorrer y posteriormente imprimir las letras de un nombre.

def run():
    nombre = input("Escribe tu nombre por favor: ")   

    for letra in nombre:
        print(letra)

if __name__ == '__main__': 
    run()

La variable “nombre” capta a través de consola la cadena de caracteres que va a recorrerse en el ciclo.

La variable “letra” Se inicializa en 0 y toma el valor en la posición 0 de la cadena de caracteres que está dentro de la variable “nombre”.

El ciclo “for”, evalúa si en la posición 0 hay una letra. Como esto es verdadero, el ciclo ejecuta la  línea de código print(letra) después de su validación.

De nuevo el ciclo “for” se actualiza y la variable “letra” toma el valor nuevo del rango de la variable “nombre” y el ciclo se repite hasta que la condición sea falsa. Es decir, hasta que el ciclo haya recorrido todas las letras de la variable “nombre”

Cómo modificar el funcionamiento de un ciclo con Python

En los lenguajes de programación, es posible modificar el funcionamiento de un ciclo.

No siempre, un ciclo debe funcionar de forma consecutiva, y el funcionamiento puede modificarse dependiendo de las necesidades que se tengan a la hora de solucionar un problema o lograr un objetivo de programación.

Para modificar un ciclo en Python se tienen las palabras clave: break y continue

Ejemplo utilizando la palabra “continue”

Deseamos imprimir los números pares desde 0 hasta 999.

def run():

    for contador in range(1000):
        if contador % 2 != 0:
            continue
            print(contador)         

if __name__ == '__main__': 
    run()

En este ciclo, se ha creado una condición la cual evalúa si el número es impar.

Todo número dividido por dos que de un residuo 1 es un número impar. Entonces si el número de la variable “contador” es impar, hará que se ejecute la siguiente línea de código con la palabra “continue” y hará que no se ejecuten las líneas siguientes y vuelve a evaluar el ciclo “for” hasta que encuentre un número par e imprima el número del valor que tiene la variable “contador”.

En pocas palabras, la palabra clave “continue” hará que no se ejecuten las líneas de código que están debajo de esta y hará que se genere una nueva vuelta en el ciclo.

Ejemplo utilizando la palabra “break”

Algunas veces, deseamos parar la ejecución del ciclo en Python.

Deseamos imprimir los números del 0 hasta el 550 dentro de un rango del 0 al 999.

def run():

    for i in range(1000):
        print(i)
        if i == 550:
            break

if __name__ == '__main__'
    :run()

En este caso, se imprimen los números que toma la variable “i” del rango y en cada paso, se evalúa si la variable “i” tiene un valor de 550. Mientras la respuesta sea falsa, el ciclo se seguirá ejecutando, pero cuando la variable “i” es igual a 550, el ciclo termina su ejecución.

Scroll to Top