Bucle for en Python [con ejemplos sencillos]

El bucle for en Python es una función de iteración. Si tienes un objeto de secuencia como una lista, puedes usar el bucle for para iterar sobre los elementos contenidos en la lista.

La funcionalidad del bucle for no difiere mucho de lo que ves en muchos otros lenguajes de programación.

En este artículo, exploraremos en detalle el bucle for en Python y aprenderemos a iterar sobre diferentes secuencias, incluyendo listas, tuplas y más. Además, aprenderemos a controlar el flujo del bucle utilizando las declaraciones break y continue.

Sintaxis básica del bucle for en Python

La sintaxis básica del bucle for en Python se parece algo a la que se menciona a continuación.

for itarator_variable in sequence_name:
	Statements
	. . .
	Statements

Permíteme explicar mejor la sintaxis del bucle for en Python.

  • La primera palabra de la declaración comienza con la palabra clave “for”, que indica el inicio del bucle for.
  • Luego tenemos la variable del iterador, que itera sobre la secuencia y se puede usar dentro del bucle para realizar varias funciones.
  • A continuación está la palabra clave “in” en Python, que indica al iterador que haga un bucle por los elementos dentro de la secuencia.
  • Y finalmente, tenemos la variable de secuencia que puede ser una lista, una tupla, u otro tipo de iterador.
  • La parte de las declaraciones del bucle es donde puedes manipular la variable del iterador y realizar diversas funciones

1. Imprimir letras individuales de una cadena usando el bucle for

La cadena de Python es una secuencia de caracteres. Si dentro de alguna de tus aplicaciones de programación necesitas recorrer los caracteres de una cadena individualmente, puedes usar el bucle for aquí.

Así es cómo funcionaría para ti.

word="anaconda"
for letter in word:
	print (letter)

Salida:

a
n
a
c
o
n
d
a

La razón por la que este bucle funciona es porque Python considera una “cadena” como una secuencia de caracteres en lugar de mirar la cadena en su conjunto.

2. Usar el bucle for para iterar sobre una lista o tupla de Python

Listas y las Tuplas son objetos iterables. Veamos cómo podemos recorrer los elementos dentro de estos objetos ahora.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
	print (word)

Salida:

Apple
Banana
Car
Dolphin

Ahora, avancemos y trabajemos en recorrer los elementos de una tupla aquí.

nums = (1, 2, 3, 4)

sum_nums = 0

for num in nums:
    sum_nums = sum_nums + num

print(f'Sum of numbers is {sum_nums}')

# Salida
# La suma de los números es 10

3. Anidamiento de bucles for en Python

Cuando tenemos un bucle for dentro de otro bucle for, se llama un bucl for anidado. Hay múltiples aplicaciones de un bucle for anidado.

Considera el ejemplo de la lista anterior. El bucle for imprime palabras individuales de la lista. Pero, ¿qué pasa si queremos imprimir los caracteres individuales de cada una de las palabras dentro de la lista en su lugar?

Aquí es donde funciona mejor un bucle for anidado. El primer bucle (bucle principal) recorrerá las palabras una por una. El segundo bucle (bucle secundario) recorrerá los caracteres de cada una de las palabras.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
        # Este bucle obtiene la palabra de la lista
        print ("The following lines will print each letters of "+word)
        for letter in word:
                # Este bucle obtiene la letra de la palabra
                print (letter)
        print("") # Esta impresión se utiliza para imprimir una línea en blanco

Salida

4. Bucle for de Python con la función range()

range() de Python es una de las funciones incorporadas. Cuando deseas que el bucle for se ejecute un número específico de veces, o necesitas especificar un rango de objetos para imprimir, la función range funciona realmente bien. Considera el siguiente ejemplo donde quiero imprimir los números 1, 2 y 3.

for x in range(3):
    print("Printing:", x)
	
# Salida

# Imprimiendo: 0
# Imprimiendo: 1
# Imprimiendo: 2

La función range también toma otro parámetro además del inicio y el final. Este es el parámetro de paso. Indica a la función range cuántos números omitir entre cada conteo.

En el siguiente ejemplo, he utilizado el número 3 como paso y puedes ver que los números de salida son el número anterior + 3.

for n in range(1, 10, 3):
    print("Printing with step:", n)
	
# Salida

# Imprimiendo con paso: 1
# Imprimiendo con paso: 4
# Imprimiendo con paso: 7

5. sentencia break con bucle for

La sentencia break se utiliza para salir prematuramente del bucle for. Se utiliza para interrumpir el bucle for cuando se cumple una condición específica.

Supongamos que tenemos una lista de números y queremos comprobar si un número está presente o no. Podemos iterar sobre la lista de números y si se encuentra el número, salir del bucle porque no necesitamos seguir iterando sobre los elementos restantes.

En este caso, utilizaremos la condición if else de Python junto con nuestro bucle for.

nums = [1, 2, 3, 4, 5, 6]

n = 2

found = False
for num in nums:
    if n == num:
        found = True
        break

print(f'List contains {n}: {found}')

# Resultado
# Lista contiene 2: Verdadero

6. La sentencia continue con bucle for

Podemos utilizar sentencias continue dentro de un bucle for para omitir la ejecución del cuerpo del bucle for para una condición específica.

Supongamos que tenemos una lista de números y queremos imprimir la suma de los números positivos. Podemos usar las sentencias continue para saltar el bucle for para los números negativos.

nums = [1, 2, -3, 4, -5, 6]

sum_positives = 0

for num in nums:
    if num < 0:
        continue
    sum_positives += num

print(f'Sum of Positive Numbers: {sum_positives}')

6. Bucle for en Python con bloque else

Podemos usar el bloque else con un bucle for en Python. El bloque else se ejecuta solo cuando el bucle for no se termina con una declaración break.

Supongamos que tenemos una función para imprimir la suma de números solo si todos los números son pares.

Podemos usar la declaración break para terminar el bucle for si hay un número impar presente. Podemos imprimir la suma en la parte else para que se imprima solo cuando el bucle for se ejecute normalmente.

def print_sum_even_nums(even_nums):
    total = 0

    for x in even_nums:
        if x % 2 != 0:
            break

        total += x
    else:
        print("For loop executed normally")
        print(f'Sum of numbers {total}')


# esto imprimirá la suma
print_sum_even_nums([2, 4, 6, 8])

# esto no imprimirá la suma debido a un número impar en la secuencia
print_sum_even_nums([2, 4, 5, 8])

# Salida

# Bucle for ejecutado normalmente
# Suma de números 20

Conclusión

El bucle for en Python es muy similar a otros lenguajes de programación. Podemos usar las declaraciones break y continue con el bucle for para alterar la ejecución. Sin embargo, en Python, también podemos tener un bloque else opcional en el bucle for.

I hope you have gained some interesting ideas from the tutorial above. If you have any questions, let us know in the comments below.

Source:
https://www.digitalocean.com/community/tutorials/python-for-loop-example