🐍 Estructuras de Control

Condicionales: if / elif / else

Las estructuras condicionales permiten ejecutar código solo si se cumple una condición. En Python se usa if, elif (else if) y else.

edad = int(input("¿Cuántos años tienes? "))

if edad >= 18:
    print("Eres mayor de edad.")
elif edad >= 13:
    print("Eres adolescente.")
else:
    print("Eres menor de edad.")

print("Fin del programa.")

Puntos clave:

  • La condición termina con dos puntos (:).
  • El bloque de código dentro del condicional va identado (4 espacios por convención).
  • Puedes tener tantos elif como necesites.
  • else es opcional y captura cualquier otro caso.

Condiciones múltiples con and / or

nota = float(input("Nota del examen: "))
asistencia = float(input("Porcentaje de asistencia: "))

if nota >= 5 and asistencia >= 80:
    print("✅ Aprobado")
elif nota >= 5 and asistencia < 80:
    print("⚠️ Aprobado pero con asistencia insuficiente")
else:
    print("❌ Suspenso")

Condiciones anidadas

numero = int(input("Dime un número: "))

if numero > 0:
    if numero % 2 == 0:
        print(f"{numero} es positivo y par.")
    else:
        print(f"{numero} es positivo e impar.")
elif numero < 0:
    print(f"{numero} es negativo.")
else:
    print("El número es cero.")

Bucle while

El bucle while repite un bloque mientras una condición sea verdadera:

# Contar del 1 al 5
contador = 1
while contador <= 5:
    print(f"Número: {contador}")
    contador += 1  # ¡Importante! Sino, bucle infinito

print("¡Despegue! 🚀")

Bucle infinito controlado con break

# Menú interactivo
while True:
    print("\n=== MENÚ ===")
    print("1. Saludar")
    print("2. Despedir")
    print("3. Salir")
    opcion = input("Elige una opción: ")

    if opcion == "1":
        print("¡Hola!")
    elif opcion == "2":
        print("¡Adiós!")
    elif opcion == "3":
        print("Saliendo...")
        break
    else:
        print("Opción no válida.")

Bucle for

El bucle for itera sobre una secuencia (lista, tupla, cadena, etc.):

# Iterar sobre una cadena
for letra in "Python":
    print(letra)

print()

# Iterar sobre una lista
colores = ["rojo", "verde", "azul"]
for color in colores:
    print(f"Color: {color}")

range()

La función range() genera secuencias de números. Muy útil con for:

# range(stop)
for i in range(5):
    print(i)  # 0, 1, 2, 3, 4

print("---")

# range(start, stop)
for i in range(2, 6):
    print(i)  # 2, 3, 4, 5

print("---")

# range(start, stop, step)
for i in range(0, 10, 2):
    print(i)  # 0, 2, 4, 6, 8

print("---")

# Recorrer hacia atrás
for i in range(5, 0, -1):
    print(i)  # 5, 4, 3, 2, 1

break y continue

  • break — Sale del bucle inmediatamente.
  • continue — Salta a la siguiente iteración, ignorando el resto del bloque.
# break: encontrar el primer número par
for num in range(1, 10):
    if num % 2 == 0:
        print(f"Primer par encontrado: {num}")
        break
    print(f"{num} es impar...")

print()

# continue: saltar los números pares
for num in range(1, 8):
    if num % 2 == 0:
        continue
    print(f"{num} es impar")

enumerate()

enumerate() permite obtener el índice y el valor al mismo tiempo al iterar:

frutas = ["manzana", "plátano", "cereza", "dátil"]

for indice, fruta in enumerate(frutas):
    print(f"{indice + 1}. {fruta}")

# También puedes especificar el inicio del índice
for i, fruta in enumerate(frutas, start=1):
    print(f"{i}. {fruta}")

Ejemplo completo: juego de adivinanza

import random

print("=== ADIVINA EL NÚMERO ===")
secreto = random.randint(1, 10)
intentos = 0

while True:
    try:
        numero = int(input("Adivina el número (1-10): "))
        intentos += 1

        if numero == secreto:
            print(f"¡Acertaste en {intentos} intento(s)! 🎉")
            break
        elif numero < secreto:
            print("El número es mayor. Sigue intentando.")
        else:
            print("El número es menor. Sigue intentando.")
    except ValueError:
        print("Por favor, introduce un número válido.")
💡 Consejo: Siempre que veas que repites código, piensa si puedes usar un bucle. Y si el número de repeticiones es fijo, usa for; si depende de una condición, usa while.

Resumen

  • if/elif/else para decisiones condicionales.
  • while repite mientras se cumpla una condición.
  • for itera sobre secuencias; combínalo con range().
  • break sale del bucle; continue salta a la siguiente iteración.
  • enumerate() te da el índice y el valor a la vez.

← Volver al curso