En este post aprenderemos qué son y cómo utilizar los bucles en Python (While y For), sus diferencias, como trabaja cada uno y en que momento debemos utilizar uno u otro en diferentes casos prácticos. Además incorporamos condicionales y datos estructurados en ejemplos prácticos para que mejores tu lógica de programación.

¿Qué son los bucles en python?

Un bucle o ciclo en programación es la ejecución continua de un determinado bloque de código mientras una condición asignada se cumpla.

Es decir, por ejemplo, que los bucles en python son partes o bloques de nuestro programa que se ejecutan mientras se cumpla determinada condición. Existen también los bucles infinitos en Python que son aquellos en los cuales la condición “siempre o nunca” se cumple.

🔍 ¿Bucles?
A veces voy por la vida pensando que tal vez estemos atrapados en un bucle infinito producto de un ordenador gigante!
-Basta ya de filosofía!! Este es un blog de programación!
-Ho cierto!!

⚡ El bucle For en Python

Los bucles for en Python, iteran sobre los ítems de cualquier secuencia (lista, cadena, diccionario) en el orden en que aparecen en la secuencia.

Iterar significa realizar cierta acción repetidas veces, y en el caso de for, hace referencia a recorrer elementos iterables, como puede ser un diccionario en búsqueda de un elemento en particular.

Bucles en python - bucle for

Este código podría leerse: Para “char” en L (lista) hacer:

  • Si “char” es exactamente igual a “c”: Imprimir True
  • Sino, si “char” es exactamente igual a “j”: Imprimir True
  • Para todo lo demás será False, evidentemente.

Este bloque de código dentro del bucle se suele llamar “cuerpo del bucle” (que en este caso son condicionales), y cada repetición se suele llamar iteración.

Para no complicarnos tanto podemos entender al bucle for como el encargado de recorrer una secuencia buscando esos elementos que cumplen determinada condición y realizando alguna instrucción según sea especificada. Es importante recalcar que dichos elementos deben ser «iterables», es decir, recorribles.

Un bucle for podría verse como hojear un libro pagina por pagina y extraer solo las imágenes. El hecho de extraer solo las imágenes sería la condición y una vez extraídas todas se habría cumplido por lo que el bucle se detendría.

Si has comprendido el uso del ciclo for, es hora de ver su sintaxis. Venga que es muy sencillo!

🖋️Sintaxis del bucle for

En el caso de un bucle for se debe especificar la variable donde se alojarán los ítem del elemento iterable (lista, diccionario, cadena, etc.)

Se coloca la sentencia for seguida de la variable donde se almacenarán los ítem y luego del operador «in» el elemento a iterar:

for variable in elemento_iterable:
    cuerpo de la repetición

En este caso “elemento_iterable” debe ser obligadamente un elemento iterable, como por ejemplo, un dato estructurado (lista, tupla o diccionario, etc) si es una variable que almacena un solo dato único o es un objeto no iterable, obtendremos un error.

Ejemplo: Iterar una lista de números

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#  sin título.py
#  
#  Copyright https://pythones.net
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] # Creamos la lista con números
for num in numeros: # En la variable "num" almacenamos los ítems de la lista
    if num % 2 == 0: # Condición: Si el resto de la división por dos es cero entonces:
        print(num) # Imprimimos la variable num

Resultado:

2, 4, 6, 8, 10, 12, 14

Aquí estamos creando un bucle que itera sobre la lista números almacenando los ítem de ella en la variable «num» e imprimiendo aquellos que cumplen la condición de «al dividirlos por 2, da resto cero». Esto lo hacemos utilizando el operador aritmético «%» y el de comparación «==» que vimos anteriormente.

Si tu ejecutas este código verás que solo ha de imprimir los números pares, pero si cambiáramos el operador de comparación «==» (exactamente igual) por «!=» (diferente) a cero, nos imprimiría los impares. Prueba lo siguiente:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#  sin título.py
#  
#  Copyright https://pythones.net

numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] #Creamos la lista con números

for num in numeros: #En la variable "num" almacenamos los ítem de la lista

    if num % 2 != 0: #Condición: Si el resto de la división por dos es cero entonces:

        print (num) # Imprimimos la variable num

Resultado:

1, 3, 5, 7, 9, 11, 13

El bucle es el mismo, pero solo hemos cambiado la condición y en este caso nos imprimirá los números impares de la lista «números».

Ejemplo: Contar letras en una cadena

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#  sin título.py
#  
#  Copyright https://pythones.net
entrada = "hola estoy programando en python" # Cadena de texto a analizar
contador = 0
cuentalaletra = 'a' # Almacenamos en la variable la letra que vamos a contar

for letra in entrada: # Almacenamos en letra cada ítem de la cadena
    if letra == cuentalaletra: # Si el ítem es igual a la letra a contar
        contador += 1 # Sumamos uno al contador

print(cuentalaletra, ':', contador) # Imprimimos la letra a contar y el número del contador

Resultado:

a : 3

  1. En este ejemplo tenemos la variable “entrada” que almacena una cadena de texto (String), que podría ser cualquiera.
  2. Seguidamente definimos la variable contador donde iremos sumando 1 a la variable cada vez que se cumpla la condición.
  3. Definimos la variable cuentaletra que se encargará de almacenar el carácter a contar, en este caso “a”.
  4. Definimos el bucle for, para la variable “letra” en la variable “entrada” (que es la que almacena la cadena de texto) hacer.
  5. Condición: Si la variable “letra” (que será cada letra, cada iteración) es exactamente igual a “cuentaletra” que será en este caso la letra “a” hacer:
  6. Sumamos 1 a contador automáticamente usando operadores.
  7. Finalmente imprimimos cuentaletra y la variable contador (que almacena cuantas veces encontró la letra)

 

⚡ El bucle While en Python

El bucle while nos permite ejecutar un bloque de código continuamente mientras la condición sea verdadera. Incluso podemos crear bucles infinitos.

Bucles en python - Bucle While

Estos se ejecutan mientras la condición sea verdadera. Si la condición se cumple, se ejecutará el cuerpo del bucle y al finalizar se volverá a comprobar la condición. Si continúa siendo verdadera, se ejecutará nuevamente. En caso contrario, omitirá el bucle y continuará con la ejecución normal del programa.

Es importante aprendas a diferenciar los bucles en python, comprendas su funcionamiento y sepas cuándo utilizar uno u otro.

A lo largo de este post veremos diferentes ejemplos que podrás probar en tu cuaderno Jupyter y jugar con el código para experimentar con su funcionamiento.

 

🖋️Sintaxis del bucle while

Es realmente muy sencilla, escribimos la palabra reservada While seguida de la condición y dos puntos, debajo de esta se encontrara el cuerpo del mismo.

while (condición):
    Cuerpo de la repetición

Veamos algunos ejemplos:

 

Ejemplo: Contador usando while

#!/usr/bin/env python
# -*- coding: utf-8 -*-
i = 0 # Declaramos el valor de la variable "i"

while i <= 9: # Creamos el bucle con la condición de ejecutarse mientras "i" sea menor o igual a "9"
    i += 1 # Cuerpo de la repetición: sumamos uno a i (i es igual a i mas uno)
    print(i) # Imprimimos "i"

Resultado:

1, 2, 3, 4, 5, 6, 7, 8, 9, 10

  1. Definimos la variable “i” y le asignamos el valor “0”.
  2. Seguidamente creamos el bucle While con la condición de que se ejecute mientras i sea menor o igual a 9 (revisar operadores de comparación)
  3. Dentro del cuerpo del bucle le sumamos 1 a i, automáticamente a cada vuelta del bucle.
  4. Finalmente imprimimos i.

Como verás se detiene cuando “i” alcanza el valor 10. Porque así está definido, ya que el bucle da una vuelta más y se encuentra con que “i” es igual a 10. Por ende, es mayor a 9. Si quieres que sea exactamente 9 debes tener en cuenta que la comprobación se hace cada comienzo del bucle, por lo que deberías cambiar la condición a detenerse en 8. Este es un detalle muy importante a tener en cuenta en cuanto al funcionamiento de los bucles en python.

Ejemplo: Menú usando while infinito

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#  bucles.py
#  
#  Copyright https://pythones.net

while True: # Creamos el ciclo infinito
    opcion = input("""Elige una fruta para tu desayuno: 
    1- Manzanas
    2- Bananas
    3- Nada
    """) # Creamos un input para que el usuario ingrese su opción y la almacenamos en "opcion"

    if opcion == '1': # Condicionales según la opción que eligió!
        print("Has seleccionado manzanas")
    elif opcion == '2':
        print("Has seleccionado bananas")
    elif opcion == '3':
        print("Has seleccionado nada")
    else:
        print("Debes seleccionar una opción (1, 2 o 3)")

Nota: Se seguirá repitiendo hasta que el usuario seleccione una opción válida.

  1. Creamos un bucle infinito, ya que al colocar un “Mientras sea verdadero” se ejecutará indefinidamente.
  2. Definimos una variable para almacenar el input() o entrada del usuario y le presentamos las opciones. Las cuales se almacenarán en dicha variable.
  3. Creamos un condicional dentro del bucle que se encargará de comprobar que opción ha elegido el usuario y según la elegida habrá de imprimir.
  4. Dentro de cada condicional puedes colocar código personalizado para que suceda alguna otra cosa que solo un print(). Te invito a personalizar este código para practicar, puedes por ejemplo; crear una lista y presentarle al usuario la opción de añadir algún elemento según la opción seleccionada.

Fíjate que en este caso al seleccionar una opción se ejecutará lo que esté dentro del condicional y se volverán a presentar las opciones. Pero, ¿y si queremos que el programa se detenga al haber seleccionado una opción y ejecutado el código dentro del condicional?

⚡ Control de Bucles: Break, Continue y Pass

🔍 Break:

Es importante aprender a controlar el flujo de los bucles en python para evitar errores de ejecución continua o que nuestro bucle sea infinito cuando no lo deseamos así.
La instrucción break se utiliza para finalizar un bucle, es decir, salir de él y continuar con la ejecución del resto de instrucciones del programa.

Ejemplo: Romper un bucle while

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#  bucles.py
#  
#  Copyright https://pythones.net

while True: # Creamos el ciclo infinito
    opcion = input("""Elige una fruta para tu desayuno: 
    1- Manzanas
    2- Bananas
    3- Nada
    """)

    if opcion == '1': # Condicionales según la opción que eligió!
        print("Has seleccionado manzanas")
        break # Rompemos el bucle
    elif opcion == '2':
        print("Has seleccionado bananas")
        break # Rompemos el bucle
    elif opcion == '3':
        print("Has seleccionado nada")
        break # Rompemos el bucle
    else:
        print("Debes seleccionar una opción (1, 2 o 3)")

print("Programa terminado, que disfrutes tu desayuno")

Utilizando la sentencia “break” rompemos el bucle, es decir, lo detenemos y se detendrá la ejecución del programa, porque en este caso se trata de un bucle infinito.

🔍 Continue:
La instrucción continue dentro de un bucle obliga al intérprete a volver al inicio del bucle, obviando todas las instrucciones o iteraciones debajo de él.

Si en vez de colocar un break, colocáramos en su lugar un continue, al seleccionar una opción nos devolvería al inicio, volviéndonos a preguntar.

🔍 Pass:
La instrucción pass es como lo indica su nombre, una expresión nula, no hace nada. Es casi como si no existiera, pero nos permite crear un bucle sin colocar código en su cuerpo para añadirlo más tarde, utilizándolo como un relleno temporal.

La diferencia con continue es que este termina la iteración actual pero continúa con la siguiente instrucción o iteración del bucle, volviendo al inicio. En cambio, pass no hace nada y continúa con las siguientes instrucciones de este sin volver al inicio.

 

🆚 Diferencias entre For y While

Destacamos las diferencias de estos dos tipos de bucles en python:

  • El bucle for podría traducirse como “para”.
  • El bucle while podría traducirse como “mientras”.
  • En el caso de for, no nos permite realizar un ciclo infinito.
  • A diferencia de while, que sí nos brinda esa posibilidad, desde el comienzo no están declaradas la cantidad de iteraciones a realizar.

⚠️ Los errores más comunes al utilizar Bucles en python

  • Olvidar los dos puntos (:): Cada bucle debe terminar con dos puntos después de la condición.
  • No indentar correctamente: Python requiere indentación para identificar bloques de código.
  • Condición siempre verdadera: Esto crea un bucle infinito si no se maneja correctamente.
  • Acceder a índices inexistentes: Intentar acceder a un índice fuera de rango generará un error.

🚀 Conclusión – Bucles en python

Los bucles en python son herramientas fundamentales para automatizar tareas repetitivas. Dependiendo de la situación, puedes elegir entre:

  • Bucle for: Ideal para recorrer colecciones con un número fijo de elementos.
  • Bucle while: Útil cuando necesitas ejecutar código hasta que una condición específica cambie.

Adiooos! Esto ha sido todo sobre los bucles en python, espero lo hayas comprendido al 100% y, si no, vuelve al inicio 8)

Cualquier duda puedes dejar un comentario! Gracias por visitar mi blog y no olvides suscribirte!! Nos vemos en la siguiente!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio