Skip to content

5. Control de Flujo (Condicionales)

🤔 5.1 Qué es una decisión en programación

Section titled “🤔 5.1 Qué es una decisión en programación”

Una decisión en programación es un mecanismo que permite al programa elegir entre diferentes caminos de ejecución basándose en la evaluación de condiciones. Es análogo a cómo los humanos tomamos decisiones: “Si llueve, llevo paraguas; si no, no lo llevo”.

El control de flujo altera el orden secuencial de ejecución. Por defecto, las instrucciones se ejecutan línea por línea, pero las estructuras de control permiten tomar decisiones, repetir acciones y saltar secciones de código.

Propósito de las estructuras condicionales

Section titled “Propósito de las estructuras condicionales”
  • Adaptabilidad: El programa responde diferente según las circunstancias
  • Validación: Verifican que los datos cumplan criterios específicos
  • Lógica de negocio: Implementan reglas del dominio del problema
  • Interactividad: Responden a las acciones del usuario
Comparación de flujos
# FLUJO SECUENCIAL (sin decisiones)
print("Línea 1")
print("Línea 2")
print("Línea 3")
# FLUJO CONDICIONAL (con decisiones)
edad = 17
if edad >= 18:
print("Eres mayor de edad") # No se ejecuta
else:
print("Eres menor de edad") # Sí se ejecuta
Decisión simple
# Decisión con un solo camino
temperatura = 38
if temperatura > 37:
print("⚠️ Tienes fiebre")
print("Debes consultar al médico")
print("Programa finalizado")

🔀 5.2 Uso de if, elif, else con ejemplos sencillos

Section titled “🔀 5.2 Uso de if, elif, else con ejemplos sencillos”
EstructuraDescripción
ifEvalúa una condición y ejecuta código si es True
if-elseDos caminos: uno si es True, otro si es False
if-elif-elseMúltiples condiciones evaluadas en secuencia
if condicion:
# código si es True
elif otra_condicion:
# código si esta es True
else:
# código si todas son False
  • Indentación obligatoria: Python usa 4 espacios para delimitar bloques
  • Evaluación en cortocircuito: Se ejecuta el primer True encontrado
  • else es opcional: Puedes usar solo if o if-elif
if simple
# Estructura if básica
edad = 20
if edad >= 18:
print("Eres mayor de edad")
print("Puedes votar")
print("Fin del programa")
if-else
# Estructura if-else
numero = 7
if numero % 2 == 0:
print(f"{numero} es par")
else:
print(f"{numero} es impar")
# Salida: 7 es impar
if-elif-else
# Estructura if-elif-else
nota = 8.5
if nota >= 9.0:
print("Calificación: A (Excelente)")
elif nota >= 8.0:
print("Calificación: B (Muy bueno)")
elif nota >= 7.0:
print("Calificación: C (Bueno)")
elif nota >= 6.0:
print("Calificación: D (Aprobado)")
else:
print("Calificación: F (Reprobado)")
# Salida: Calificación: B (Muy bueno)

⚖️ 5.3 Operadores relacionales aplicados a condiciones

Section titled “⚖️ 5.3 Operadores relacionales aplicados a condiciones”

Los operadores relacionales comparan valores y generan expresiones booleanas:

OperadorDescripción
==Igual a
!=Diferente de
<Menor que
>Mayor que
<=Menor o igual
>=Mayor o igual
OperadorDescripción
inVerifica si un elemento está en una secuencia
not inVerifica si NO está
andAmbas condiciones deben ser True
orAl menos una debe ser True
notInvierte el valor booleano
Comparaciones
# Operadores relacionales
edad = 25
if edad == 25:
print("Tienes exactamente 25 años")
if edad >= 18:
print("Puedes votar")
if edad < 65:
print("No eres adulto mayor")
Operador in
# Verificar pertenencia
frutas = ["manzana", "pera", "uva"]
if "manzana" in frutas:
print("Tenemos manzanas")
email = "usuario@example.com"
if "@" in email:
print("Email válido")
and y or
# Usar and
edad = 25
tiene_licencia = True
if edad >= 18 and tiene_licencia:
print("Puedes conducir")
# Usar or
dia = "sábado"
if dia == "sábado" or dia == "domingo":
print("Es fin de semana")

El anidamiento consiste en colocar una estructura condicional dentro de otra, permitiendo crear lógica más compleja donde las decisiones dependen de múltiples niveles de evaluación.

  • Decisiones dependientes: Una decisión solo tiene sentido después de otra
  • Validaciones en cascada: Verificar múltiples criterios en secuencia
  • Lógica compleja: Cuando no puede expresarse con operadores simples
  • Limitar el anidamiento a 2-3 niveles máximo
  • Considerar usar operadores lógicos en lugar de anidar
  • Refactorizar si hay más de 3 niveles
Anidamiento básico
# Anidamiento de dos niveles
edad = 20
tiene_licencia = True
if edad >= 18:
print("Eres mayor de edad")
if tiene_licencia:
print("✅ Puedes conducir")
else:
print("❌ Necesitas licencia")
else:
print("Eres menor de edad")
Anidado vs and
# Con anidamiento
if edad >= 18:
if tiene_licencia:
print("Puedes conducir")
# Con operador and (más simple)
if edad >= 18 and tiene_licencia:
print("Puedes conducir")

💪 5.5 Ejercicios guiados: validar edad, comparar números

Section titled “💪 5.5 Ejercicios guiados: validar edad, comparar números”

Los ejercicios guiados permiten aplicar los conceptos de estructuras condicionales en problemas prácticos: validación de datos, comparación de valores, clasificación y lógica de negocio.

Validar edad
# Validar si una persona puede votar
edad = int(input("Ingresa tu edad: "))
if edad < 0:
print("❌ Edad inválida")
elif edad < 18:
print(f"❌ No puedes votar (faltan {18 - edad} años)")
elif edad <= 120:
print("✅ Puedes votar")
else:
print("❌ Edad inválida")
Comparar números
# Comparar dos números
num1 = float(input("Primer número: "))
num2 = float(input("Segundo número: "))
if num1 > num2:
print(f"{num1} es MAYOR que {num2}")
elif num1 < num2:
print(f"{num1} es MENOR que {num2}")
else:
print(f"{num1} y {num2} son IGUALES")
Clasificar edad
# Clasificar persona según edad
edad = int(input("Ingresa tu edad: "))
if edad <= 2:
categoria = "Bebé 👶"
elif edad <= 12:
categoria = "Niño 🧒"
elif edad <= 17:
categoria = "Adolescente 👦"
elif edad <= 64:
categoria = "Adulto 👨"
else:
categoria = "Adulto mayor 👴"
print(f"Categoría: {categoria}")
Mayor de tres
# Encontrar el mayor de tres números
num1 = float(input("Primer número: "))
num2 = float(input("Segundo número: "))
num3 = float(input("Tercer número: "))
if num1 >= num2 and num1 >= num3:
mayor = num1
elif num2 >= num1 and num2 >= num3:
mayor = num2
else:
mayor = num3
print(f"El mayor número es: {mayor}")
Calculadora IMC
# Calcular IMC y clasificar
peso = float(input("Peso en kg: "))
altura = float(input("Altura en metros: "))
if peso <= 0 or altura <= 0:
print("❌ Datos inválidos")
else:
imc = peso / (altura ** 2)
print(f"Tu IMC es: {imc:.2f}")
if imc < 18.5:
print("Clasificación: Bajo peso")
elif imc < 25:
print("Clasificación: Peso normal")
elif imc < 30:
print("Clasificación: Sobrepeso")
else:
print("Clasificación: Obesidad")

🐝