Bucle for de Python

0 acciones
0
0
0
0

Introducción

El bucle for en Python es una función recursiva. Si tienes un objeto de secuencia, como una lista, puedes usar el bucle for para iterar sobre sus elementos. Su funcionalidad no difiere mucho de la de otros lenguajes de programación. En este artículo, exploraremos el bucle for de Python en detalle y aprenderemos a iterar sobre diversas secuencias, incluyendo listas, tuplas y más. Además, aprenderemos a controlar el flujo del bucle mediante las sentencias break y continue.

Cuándo utilizar el bucle for

Siempre que necesites repetir un bloque de código varias veces, utiliza una declaración "while loop" si no sabes cuántas veces debe repetirse.

Sintaxis del bucle for

La sintaxis básica de un bucle for en Python se parece a la que se muestra a continuación.

for itarator_variable in sequence_name:
Statements
. . .
Statements

Sintaxis de bucle for de Python en detalle

  • La primera palabra de la declaración comienza con la palabra clave “for”, lo que significa el inicio del bucle for.
  • Luego tenemos la variable iteradora que itera sobre la secuencia y se puede utilizar dentro del bucle para realizar varias funciones.
  • Lo siguiente es la palabra clave “in” en Python, que le dice a la variable iteradora que recorra los elementos dentro de la secuencia.
  • Y finalmente, tenemos la variable secuencia, que puede ser una lista, una tupla o cualquier otro tipo de iterador.
  • La sección de declaraciones de bucle es donde puedes jugar con la variable del iterador y realizar varias funciones.

Imprima letras individuales de una cadena usando un bucle for

Una cadena de Python es una secuencia de caracteres. Si en alguno de tus programas necesitas iterar los caracteres de una cadena individualmente, puedes usar un bucle for.

Aquí te explicamos cómo puedes hacerlo.

word="anaconda"
for letter in word:
print (letter)
a
n
a
c
o
n
d
a

La razón por la que este bucle funciona es que Python considera una "cadena" como una secuencia de caracteres, en lugar de mirar la cadena como un todo.

Uso del bucle for para iterar sobre una lista o tupla de Python

Las listas y tuplas son objetos iterables. Veamos cómo podemos iterar sobre los elementos dentro de estos objetos.

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

Producción:

Apple
Banana
Car
Dolphin

Ahora, sigamos adelante y trabajemos en 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}')
# Output
# Sum of numbers is 10

Bucles for anidados en Python

Cuando tenemos un bucle for dentro de otro bucle for, se denomina bucle for anidado. Un bucle for anidado tiene muchos usos. Considere la lista de ejemplo anterior. El bucle for imprime palabras individuales de la lista. Pero ¿qué sucedería si quisiéramos imprimir los caracteres individuales de cada palabra de la lista?

Aquí es donde un bucle for anidado funciona mejor. El primer bucle (el bucle padre) itera las palabras una por una. El segundo bucle (el bucle hijo) recorre los caracteres de cada palabra.

words= ["Apple", "Banana", "Car", "Dolphin" ]
for word in words:
#This loop is fetching word from the list
print ("The following lines will print each letters of "+word)
for letter in word:
#This loop is fetching letter for the word
print (letter)
print("") #This print is used to print a blank line

Producción:


Un bucle anidado es estructuralmente similar a las declaraciones if anidadas.

Bucle for con función range()

La función range() de Python es una de las funciones integradas. Esta función funciona muy bien cuando se desea que un bucle for se ejecute un número determinado de veces o se necesita especificar un rango de objetos para imprimir.

Al trabajar con range(), puedes pasarle entre 1 y 3 argumentos enteros:

  • comenzar Especifica el valor entero en el que comienza la secuencia, si no se incluye, el inicio se establece en 0.
  • Detener siempre es obligatorio y es un número entero que cuenta hasta pero no incluye
  • paso Determina la cantidad de incremento (o decremento en el caso de números negativos) de la siguiente iteración, si esto se omite el paso predeterminado es 1.

Considere el siguiente ejemplo donde quiero imprimir los números 1, 2 y 3:

for x in range(3):
print("Printing:", x)
# Output
# Printing: 0
# Printing: 1
# Printing: 2

La función de rango también toma otro parámetro, además del inicio y el final. Este parámetro es el paso. Indica a la función de rango cuántos números debe saltar 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)
# Output
# Printing with step: 1
# Printing with step: 4
# Printing with step: 7

También podemos usar un valor negativo para nuestro argumento de paso para iterar hacia atrás, pero necesitamos ajustar los argumentos de inicio y detención en consecuencia:

for i in range(100,0,-10):
print(i)

Aquí 100 es el valor inicial, 0 es el valor final y -10 es el rango, por lo que el bucle empieza en 100 y termina en 0, disminuyendo en 10 con cada iteración. Esto ocurre en la salida:

Output
100
90
80
70
60
50
40
30
20
10

Al programar en Python, los bucles for a menudo utilizan el tipo de secuencia range() como parámetros para la iteración.

Sentencia Break con bucle for

La sentencia break se utiliza para salir del bucle for prematuramente. Se utiliza para interrumpir el bucle for cuando se cumple una condición. Supongamos que tenemos una lista de números y queremos comprobar si un número existe. Podemos iterar sobre la lista y, si se encuentra, podemos salir del bucle, ya que no es necesario iterar 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}')
# Output
# List contains 2: True

instrucción continue con bucle for

Podemos usar sentencias continue en un bucle for para omitir la ejecución del cuerpo del bucle for bajo una condición específica. Supongamos que tenemos una lista de números y queremos imprimir la suma de números positivos. Podemos usar sentencias continue para omitir el bucle for con 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}')

Bucle for de Python con un bloque else

Podemos usar el bloque else con el bucle for de Python. Este bloque se ejecuta solo si el bucle for no se termina con una sentencia break. Supongamos que tenemos una función que imprime la suma de números si y solo si todos son pares. Si hay un número impar, podemos usar la sentencia break para terminar el bucle for. Podemos imprimir la suma en el bloque else para que se imprima 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}')
# this will print the sum
print_sum_even_nums([2, 4, 6, 8])
# this won't print the sum because of an odd number in the sequence
print_sum_even_nums([2, 4, 5, 8])
# Output
# For loop executed normally
# Sum of numbers 20

Bucles for que utilizan tipos de datos secuenciales

Las listas y otros tipos de secuencias de datos también se pueden usar como parámetros de iteración en bucles for. En lugar de iterar por range(), se puede definir una lista e iterarla. Asignamos una lista a una variable y luego iteramos sobre ella:

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']
for shark in sharks:
print(shark)

En este caso, imprimimos cada elemento de la lista. Aunque usamos la variable tiburón, podríamos haberla llamado con cualquier otro nombre válido y obtenido el mismo resultado:

Output
hammerhead
great white
dogfish
frilled
bullhead
requiem

El resultado anterior muestra que el bucle for itera sobre la lista, imprimiendo cada elemento en cada línea. Las listas y otros tipos de datos basados en secuencias, como cadenas y tuplas, se usan comúnmente en bucles for porque son iterables. Puedes combinar estos tipos de datos con range() para añadir elementos a una lista, por ejemplo:

sharks = ['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem']
for item in range(len(sharks)):
sharks.append('shark')
print(sharks)
Output
['hammerhead', 'great white', 'dogfish', 'frilled', 'bullhead', 'requiem', 'shark', 'shark', 'shark', 'shark', 'shark', 'shark']

Aquí, para cada elemento de la lista de tiburones, hemos añadido una cadena de marcador de posición de "tiburón". También puedes usar un bucle for para crear una lista desde cero:

integers = []
for i in range(10):
integers.append(i)
print(integers)

En este ejemplo, los números enteros se inicializan en una lista vacía, pero el bucle for llena la lista de la siguiente manera:

Output
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

De manera similar, podemos iterar a través de cadenas:

sammy = 'Sammy'
for letter in sammy:
print(letter)
Output
S
a
m
m
y

La iteración a través de tuplas se realiza con el mismo formato que la iteración a través de listas o cadenas, como se mencionó anteriormente. Al iterar a través de un diccionario, es importante tener en cuenta la estructura clave-valor para garantizar que se llama al elemento correcto del diccionario. A continuación, se muestra un ejemplo que llama tanto a la clave como al valor:

sammy_shark = {'name': 'Sammy', 'animal': 'shark', 'color': 'blue', 'location': 'ocean'}
for key in sammy_shark:
print(key + ': ' + sammy_shark[key])
Output
name: Sammy
animal: shark
location: ocean
color: blue

Al usar un diccionario con bucles for, la variable iterativa corresponde a las claves del diccionario y dictionary_variable[iterating_variable] a los valores. En el caso anterior, se usó la variable iterativa key para representar la clave y sammy_shark[key] para representar los valores. Los bucles se utilizan a menudo para iterar y manipular tipos de datos secuenciales.

Resultado

El bucle for en Python es muy similar al de otros lenguajes de programación. Podemos usar las sentencias break y continue con el bucle for para modificar la ejecución. Sin embargo, en Python, también podemos bloquear otro bucle.

Deja una respuesta

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

También te puede gustar