(Creado por el analista de sistemas y docente Leonel Iván Saafigueroa)
BUCLES FOR
Control de flujo, Slices de listas.

El bucle for es una herramienta fundamental en Python para recorrer secuencias de elementos como listas, cadenas, rangos u otros objetos iterables. Su sintaxis es concisa y fácil de entender: define una variable de iteración que toma el valor de cada elemento durante cada paso del ciclo (in), y la secuencia a recorrer. El bucle for ejecuta un bloque de código para cada elemento de la secuencia, lo que lo convierte en la opción ideal para tareas repetitivas o el procesamiento individual de elementos dentro de una colección.

Bucle for con listas
Un ejemplo sencillo para ilustrar el uso del bucle for es imprimir cada elemento de una lista.
En este caso, la variable fruta toma el valor de cada elemento en la lista frutas. En cada iteración del bucle, se imprime el valor actual de la variable fruta.
Al ejecutar este código, se imprimirá cada fruta en una línea separada.
Código:
frutas = ["manzana", "banana", "pera"]
for fruta in frutas:
print(fruta)
Salida por pantalla:
manzana banana pera
Bucle for con tuplas
Una tupla en Python es un conjunto ordenado e inmutable de elementos. Si bien comparte similitudes con las listas, la característica clave que las diferencia es que una vez creada, una tupla no puede ser modificada ni sus elementos cambiados. A pesar de esta inmutabilidad, podemos iterar sobre los elementos de una tupla utilizando el bucle for, similar a cómo lo hacemos con listas y cadenas.
Código:
frutas = ("manzana", "banana", "pera")
for fruta in frutas:
print(fruta)
Salida por pantalla:
manzana banana pera
Bucle for con strings
En Python, una cadena de texto es esencialmente una secuencia ordenada de caracteres. Esta característica permite utilizar el bucle for para iterar a través de cada carácter individualmente.
Podemos acceder a cada letra, número o símbolo que compone la cadena y realizar operaciones específicas con cada uno.
Este código iterará sobre cada carácter del string mensaje e imprimirá cada uno en una línea separada, mostrando cómo podemos recorrer una cadena de texto carácter por carácter.
Código:
mensaje = "Hola mundo!"
for caracter in mensaje:
print(caracter)
Salida por pantalla:
H o l a m u n d o !
Bucle for con range()
El método range() proporciona una forma conveniente de generar secuencias numéricas para usar en bucles for.
En lugar de trabajar directamente con listas, podemos especificar un inicio, un final (exclusivo) y un paso para definir la secuencia numérica que se generará. Esto permite iterar sobre rangos específicos de números sin tener que crear manualmente las listas.
for i in range(inicio, fin, paso): # sentencia1 # sentencia2 # primer sentencia fuera del for
Ejemplos de usos con range()
Código:
for num in range(5, 16, 2):
print(num, end=" ")
Salida por pantalla:
5 7 9 11 13 15
Código:
for num in range(3, 11):
print(num, end=" ")
Salida por pantalla:
3 4 5 6 7 8 9 10
Código:
for num in range(10):
print(num, end=" ")
Salida por pantalla:
0 1 2 3 4 5 6 7 8 9
range() puede tener uno, dos o tres parámetros:
● range(inicio, fin, paso)
● range(inicio, fin): Se asume que paso = 1.
● range(fin): Se asume que inicio = 0 y paso = 1.
La función range() no incluye el último valor en la secuencia. Por ejemplo, range(1, 6) generará los números del 1 al 5, pero no incluirá el 6 en la secuencia.
El uso de range() para recorrer listas
El uso de range() para recorrer una lista puede ser un poco confuso, ya que range() tradicionalmente genera secuencias numéricas, no listas.
En lugar de usar range() directamente con una lista, lo más común es utilizar range(len(lista)) dentro del bucle for.
Esto nos permite acceder a cada elemento de la lista utilizando un índice numérico.
Código:
mi_lista = ["manzana", "banana", "pera"]
# Iterar sobre la lista usando el índice
for i in range(len(mi_lista)):
print(f"Elemento en la posición {i}: {mi_lista[i]}")
Salida por pantalla:
Elemento en la posición 0: manzana Elemento en la posición 1: banana Elemento en la posición 2: pera
Slices de Listas
Los “slices” son una forma poderosa para extraer subconjuntos de elementos de una lista, creando nuevas listas a partir de las existentes.
Se utilizan mediante el siguiente formato: lista[inicio:fin:paso].
Componentes:
paso: Indica cuántos elementos saltarse entre cada inclusión en la sublista. Si se omite, se asume 1 (incluir cada elemento).
inicio: El índice donde comienza la sublista (incluye este índice). Si se omite, se asume como 0 (el primer elemento).
fin: El índice donde termina la sublista (NO incluye este índice). Si se omite, se asume como la longitud de la lista.
Código:
mi_lista = ["manzana", "banana", "naranja", "pera", "uva"] # Extraer los dos primeros elementos: print(mi_lista[0:2])
Salida por pantalla:
['manzana', 'banana']
Código:
mi_lista = ["manzana", "banana", "naranja", "pera", "uva"] # Extraer desde el tercer elemento hasta el final: print(mi_lista[2:])
Salida por pantalla:
['naranja', 'pera', 'uva']
Código:
mi_lista = ["manzana", "banana", "naranja", "pera", "uva"] # Invirtiendo la lista: print(mi_lista[::-1])
Salida por pantalla:
['uva', 'pera', 'naranja', 'banana', 'manzana']
Recomendaciones:
Pasos negativos: Utilizar un valor negativo para pasos invierte el orden de la sublista.
Índice cero: Recordá que Python utiliza el índice cero para comenzar el conteo de los elementos en una lista.
Cuidado con los límites: El elemento final especificado por fin no se incluye en la sublista.
Break
La instrucción break proporciona la posibilidad de salir de un bucle for (o while) inmediatamente al cumplirse una condición específica. Aunque ofrece control sobre la ejecución del ciclo, se recomienda evitar su uso ya que puede complicar la lectura y comprensión del código.
En lugar de utilizar break, es preferible considerar alternativas como el uso de bucles while, que ofrecen mayor flexibilidad para controlar la iteración según las condiciones.
Código:
suma = 0
for cont in range(15):
print(cont)
suma = suma + cont
if cont == 3:
break
print("La suma es:", suma)
Salida por pantalla:
0 1 2 3 La suma es: 6
Ejemplo 1: suma y promedio
El uso del bucle for en Python elimina la necesidad de implementar contadores explícitos, ya que la variable del ciclo asume esa función automáticamente. Esta característica simplifica significativamente la escritura de código, permitiendo expresar tareas iterativas con mayor concisión y legibilidad.
Código:
suma = 0
for cont in range(5):
num= int(input("Ingrese un número: "))
suma = suma + num
print('La suma es:',suma)
print('El promedio es:',suma/(cont+1))
Salida por pantalla:
Ingrese un número: 3 Ingrese un número: 4 Ingrese un número: 12 Ingrese un número: 5 Ingrese un número: 6 La suma es: 30 El promedio es: 6.0
Ejemplo 2: procesar datos
En Python, podemos simular procesos del mundo real, como la compra en un supermercado, utilizando estructuras de control iterativas. El bucle for nos permite repetir una acción varias veces, como registrar los importes de cada producto, para luego calcular el total final.
Código:
total = 0
for i in range(5):
importe = float(input("Ingrese el importe: "))
total = total + importe
print("El total de los importes ingresados es:" ,total)
Salida por pantalla:
Ingrese el importe: 500 Ingrese el importe: 200 Ingrese el importe: 1200 Ingrese el importe: 3232 Ingrese el importe: 1000 El total de los importes ingresados es: 6132.0
TAREA PARA EL HOGAR
Suma de números naturales
Desarrolla una función en Python que calcule la suma de los números naturales desde 1 hasta un valor dado (n).
Este cálculo se conoce como la suma de los números naturales, y se define como la suma de todos los números enteros positivos desde 1 hasta n.
Por ejemplo, si n = 6, la función debe devolver 21 ya que 1 + 2 + 3 + 4 + 5 + 6 = 21.
La función deberá recibir como argumento un entero positivo n y devolver la suma de los números naturales hasta n.
TIPS:
Asegurar que la función solo acepte valores enteros positivos como entrada.
Utilizar range().