Bucles en Python 🔄

Aprende a repetir acciones y procesar datos de manera eficiente usando bucles en Python.

¿Qué son los Bucles?

Los bucles son estructuras que permiten ejecutar un bloque de código múltiples veces. Son fundamentales para procesar datos, realizar cálculos repetitivos y automatizar tareas.

# Ejemplo de un bucle for
for numero in range(5):
    print(f"Contando: {numero}")

Tipos de Bucles

Bucle for

Se utiliza cuando sabemos cuántas veces queremos repetir una acción o cuando queremos iterar sobre una secuencia de elementos.

# Iterar sobre una lista
frutas = ["manzana", "banana", "naranja"]
for fruta in frutas:
    print(fruta)
¿Qué hace este código?
Crea una lista de frutas y usa un bucle for para recorrer cada elemento de la lista. En cada iteración, imprime el nombre de la fruta.
¿Cuándo usarlo?
Cuando necesitas procesar todos los elementos de una colección (lista, tupla, string, etc.).
Bucle while

Se utiliza cuando queremos repetir una acción mientras una condición sea verdadera.

# Contador con while
contador = 0
while contador < 5:
    print(contador)
    contador += 1
¿Qué hace este código?
Inicializa una variable contador en 0 y la incrementa en cada iteración mientras sea menor que 5. Imprime el valor de contador en cada paso.
¿Cuándo usarlo?
Cuando no sabes cuántas veces se repetirá la acción y depende de una condición lógica.
Bucles Anidados

Son útiles para trabajar con estructuras de datos multidimensionales o para realizar operaciones que requieren múltiples iteraciones.

# Tabla de multiplicación
for i in range(1, 4):
    for j in range(1, 4):
        print(f"{i} x {j} = {i * j}")
¿Qué hace este código?
Usa dos bucles for anidados para imprimir una tabla de multiplicar del 1 al 3. El bucle externo controla la fila (i) y el interno la columna (j).
¿Cuándo usarlo?
Cuando necesitas recorrer estructuras de datos en dos dimensiones (matrices, tablas) o realizar combinaciones de elementos.
Control de Bucles (break, continue, else)

break: Termina el bucle inmediatamente.
continue: Salta a la siguiente iteración del bucle.
else: Se ejecuta cuando el bucle termina normalmente (sin break).

# Ejemplo de break y continue
for numero in range(10):
    if numero == 5:
        break
    if numero % 2 == 0:
        continue
    print(numero)

# Ejemplo de else
for numero in range(5):
    print(numero)
else:
    print("Bucle completado")
¿Qué hace este código?
El primer bloque imprime solo los números impares menores que 5 y se detiene cuando numero es igual a 5. El segundo bloque imprime los números del 0 al 4 y luego muestra un mensaje usando else al finalizar el bucle.
¿Cuándo usarlo?
Cuando necesitas controlar el flujo del bucle, saltar iteraciones o ejecutar acciones al finalizar.

Ejercicios Prácticos

🧮Ejercicio 1: Suma de una Lista
Problema:

Escribe un programa que calcule la suma de todos los números en una lista usando un bucle for.

Pista: Inicializa una variable para almacenar la suma y usa un bucle for para iterar sobre la lista.
numeros = [1, 2, 3, 4, 5]
suma = 0

for numero in numeros:
    suma += numero

print(f"La suma es: {suma}")
🔑Ejercicio 2: Adivina la Palabra Secreta
Problema:

Crea un juego simple donde el usuario debe adivinar una palabra secreta usando un bucle while.

Pista: Usa un bucle while para seguir pidiendo al usuario que adivine hasta que acierte.
palabra_secreta = "python"
intento = ""

while intento != palabra_secreta:
    intento = input("Adivina la palabra secreta: ").lower()
    if intento != palabra_secreta:
        print("¡Incorrecto! Intenta de nuevo.")

print("¡Felicidades! Has adivinado la palabra.")
🚦Ejercicio 3: Filtrando Múltiplos de 3
Problema:

Escribe un programa que imprima los números del 1 al 20, pero que se salte los múltiplos de 3 usando continue.

Pista: Usa el operador módulo (%) para identificar los múltiplos de 3.
for numero in range(1, 21):
    if numero % 3 == 0:
        continue
    print(numero)
🗺️Ejercicio 4: Búsqueda del Tesoro
Problema:

Crea un programa que busque un tesoro en una lista de ubicaciones y se detenga cuando lo encuentre usando break.

Pista: Usa un bucle for con break para detener la búsqueda cuando encuentres el tesoro.
ubicaciones = ["playa", "montaña", "tesoro", "desierto"]

for ubicacion in ubicaciones:
    if ubicacion == "tesoro":
        print("¡Encontré el tesoro!")
        break
    print(f"Buscando en {ubicacion}...")
Ejercicio 5: Creando un Rectángulo
Problema:

Escribe un programa que use bucles anidados para imprimir un rectángulo de asteriscos con un ancho y alto específicos.

Pista: Usa dos bucles for anidados: uno para las filas y otro para las columnas.
ancho = 4
alto = 3

for i in range(alto):
    for j in range(ancho):
        print("*", end="")
    print()
Test: Dominando los Bucles