El bucle for
en Python es una estructura fundamental que permite la iteración sobre secuencias de datos. Este poderoso constructo se utiliza para ejecutar un bloque de código repetidamente, una vez por cada elemento de una secuencia, como listas, tuplas o cadenas. Aquí, exploraremos los conceptos clave y su aplicación en diversos escenarios.
Sintaxis básica del for loop
La sintaxis básica de un bucle for
en Python es:
for variable in iterable:
# Cuerpo del bucle
# Código a ejecutar en cada iteración
variable
: Representa el elemento actual en la iteración.iterable
: Es la secuencia de elementos sobre la cual se itera.
Veamos un ejemplo sencillo. Primero crearé un nuevo documento for_loop.py en mi carpeta de código.
# for loop simple
for i in range(10):
print(f"Hola for loop {i}")
Solo usé la estructura de arriba. Mi variable para iterar es i, y el iterable es el rango de 0 a 10 con la función range(10). En mi cuerpo del bucle imprimo Hola for loop <número>, este número cambia conforme mi variable de iteración cambia.
La función range tiene estos paramétros:
range(stop)
range(start, stop[, step])
Si usas range como en el ejemplo que te di arriba con un solo número entre los paréntesis, estarás indicando solo el número en el que quieres que se detenga. Desde cero hasta ese número, sin llegar a éste. En mi ejemplo puse 10, entonces va de 0 a 9.
También puedes indicarle a range desde qué valor quieres que inicie.
# for loop simple
for i in range(1, 10):
print(f"Hola for loop {i}")
El diagrama de este loop se vería así:
Ahora voy a añadir otro parámetro, un número extra en range.
# for loop simple
for i in range(4, 10, 2):
print(f"Hola for loop {i}")
Este código indica que el for loop va a correr iniciando en 4, hasta el 10 sin llegar a éste o sea 9, y avanzará de 2 en 2.
Otros ejemplos con el for loop:
Iterando sobre una lista:
Veremos las listas con profundidad en una clase más adelante, pero por ahora debes saber que una lista es una colección de datos.
frutas = ["manzana", "plátano", "uva"]
for fruta in frutas:
print(fruta)
Resultado:
manzana
plátano
uva
Iterando sobre una cadena de texto:
mensaje = "Hola"
for letra in mensaje:
print(letra)
Resultado:
H
o
l
a
La sentencia break
En Python, la sentencia break
se utiliza dentro de un bucle for
para interrumpir su ejecución antes de que se complete su ciclo normal. Su función principal es salir prematuramente del bucle, brincando a la primera línea de código después del bucle. Esto es especialmente útil cuando se alcanza una condición específica y ya no es necesario continuar iterando.
Aquí tienes un ejemplo básico:
for numero in range(10):
if numero == 5:
break
print(numero)
En este caso, el bucle for
imprimirá los números del 0 al 4. Cuando numero
es igual a 5, la sentencia break
se activa, finalizando el bucle de inmediato.
La sentencia continue
En Python, la sentencia continue
se utiliza dentro de un bucle for
para saltar a la siguiente iteración sin ejecutar el resto del código dentro del bucle en caso de que se cumpla una condición específica. Básicamente, permite omitir parte del código y pasar directamente a la siguiente iteración del bucle.
Veamos un ejemplo simple:
for numero in range(10):
if numero % 2 == 0:
continue
print(numero)
En este caso, el bucle for
imprime solo los números impares del 0 al 9. Cuando numero
es par, la sentencia continue
se activa, saltando a la siguiente iteración sin ejecutar la impresión.
La sentencia continue
es útil cuando deseas evitar ejecutar ciertas partes del código en una iteración específica, pero aún así continuar con las siguientes iteraciones del bucle.
1
3
5
7
9
Si juntamos estas dos sentencias en un bucle:
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numeros:
if num == 5:
break # Termina el bucle si encuentra el número 5
if num % 2 == 0:
continue # Salta a la siguiente iteración si el número es par
print(num)
El resultado:
1
3
Programa Básico con For Loop
Ahora, creemos un programa sencillo que utiliza un bucle for
para sumar los primeros 10 números naturales:
suma = 0
for i in range(1, 11):
suma += i
print(f"La suma de los primeros 10 números naturales es: {suma}")
Este programa utiliza la función range()
para generar números del 1 al 10 y acumula la suma en la variable suma
. Al final, imprime el resultado.
Los bucles for de Python son versátiles y cruciales para diversas tareas, desde iteraciones simples hasta procesamiento de datos complejos. Comprender su sintaxis y aplicaciones es fundamental para cualquier programador de Python.
While loop
El bucle while se ejecuta siempre y cuando una condición sea cierta. Esto repite el código dentro del bloque una y otra vez hasta que la condición deja de ser cierta. Esto encierra cierto peligro de crear bucles infinitos así que debes tener cuidado cuando trabajas con este bucle.
hola = 0
while hola < 5:
print('Hello, world.')
hola = hola + 1
En cada iteración de este bucle la variable hola cambia de valor. Inicia en 0, luego 1, 2, 3… y así hasta que llega a 5. Como 5 < 5 = False, en ese momento se detiene el bucle.
While infinito (evitar)
En Python, un bucle while
infinito se crea al proporcionar una condición que siempre sea verdadera. Aquí tienes un ejemplo:
# Ejemplo de un bucle while infinito en Python
while True:
print("Este es un bucle infinito")
En este caso, la condición True
siempre será verdadera, lo que resulta en un bucle que se ejecutará indefinidamente. Es crucial tener cuidado al usar bucles infinitos para evitar bloquear la ejecución del programa. Puedes interrumpir manualmente un bucle infinito con la combinación de teclas Ctrl + C
en la consola de Python.
Calculadora con while
Hagamos una calculadora que nos pida valores de forma continua. Cuando querramos dejar de usarla le escribiremos una palabra concreta y esto detendrá el programa. Abro un nuevo documento de Python en mi carpeta, calculadora_while.py.
# Mientras el usuario no escriba "salir" la calculadora seguirá funcionando
print("Esta es mi calculadora")
print("Para salir escribe \"salir\".")
print("""Las operaciones permitidas son: suma, resta, multiplicación (escribe multi) y división (escribe div)""")
Primero inicio con unos prints para darle indicaciones al usuario. A continuación creo una variable para guardar el resultado y un loop infinito que me pedirá números una y otra vez.
# Mientras el usuario no escriba "salir" la calculadora seguirá funcionando
print("Esta es mi calculadora")
print("Para salir escribe \"salir\".")
print("""Las operaciones permitidas son: suma, resta, multiplicación (escribe multi) y división (escribe div)""")
resultado = ""
while True:
# Código del bloque
En el bucle while vamos a revisar si no hay valor en la vriable resultado, esto significa que es la primera vez que se ejecuta y por esto pediremos el primer número al usuario. Si el usuario ingresa la palabra «salir» saldremos del bucle con un break. Si no tomaremos la entrada del usuario y la convertiremos en entero con int().
# Mientras el usuario no escriba "salir" la calculadora seguirá funcionando
print("Esta es mi calculadora")
print("Para salir escribe \"salir\".")
print("""Las operaciones permitidas son: suma, resta, multiplicación (escribe multi) y división (escribe div)""")
resultado = ""
while True:
if not resultado:
resultado = input("ingrese número: ")
if resultado.lower() == "salir":
break
resultado = int(resultado)
Si ya tenemos un valor en la variable resultado le pedimos al usuario la operación que quiere realizar. De nuevo, le damos oportunidad de para la ejecución del programa si escribe salir y después le pedimos un segundo número. Con esto ya podemos realizar la operación que corresponda.
# Mientras el usuario no escriba "salir" la calculadora seguirá funcionando
print("Esta es mi calculadora")
print("Para salir escribe \"salir\".")
print("""Las operaciones permitidas son: suma, resta, multiplicación (escribe multi) y división (escribe div)""")
resultado = ""
while True:
if not resultado:
resultado = input("ingrese número: ")
if resultado.lower() == "salir":
break
resultado = int(resultado)
operacion = input("Ingresa operación: ")
if operacion.lower() == "salir":
break
numero_2 = input("Ingresa siguiente número: ")
if numero_2.lower() == "salir":
break
numero_2 = int(numero_2)
if operacion.lower() == "suma":
resultado += numero_2
elif operacion.lower() == "resta":
resultado -= numero_2
elif operacion.lower() == "multi":
resultado *= numero_2
elif operacion.lower() == "div":
resultado /= numero_2
else:
print("Operación no es válida.")
break
print(f"El resultado es {resultado}.")
{f{e{eeqqwqwq