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”Concepto de decisión en programación
Section titled “Concepto de 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”.
Control de flujo
Section titled “Control de flujo”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
Ejemplo: Flujo secuencial vs condicional
Section titled “Ejemplo: Flujo secuencial vs condicional”# 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 ejecutaelse: print("Eres menor de edad") # Sí se ejecutaEjemplo: Decisión simple
Section titled “Ejemplo: Decisión simple”# Decisión con un solo caminotemperatura = 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”Estructuras condicionales
Section titled “Estructuras condicionales”| Estructura | Descripción |
|---|---|
if | Evalúa una condición y ejecuta código si es True |
if-else | Dos caminos: uno si es True, otro si es False |
if-elif-else | Múltiples condiciones evaluadas en secuencia |
Sintaxis
Section titled “Sintaxis”if condicion: # código si es Trueelif otra_condicion: # código si esta es Trueelse: # código si todas son FalseCaracterísticas importantes
Section titled “Características importantes”- Indentación obligatoria: Python usa 4 espacios para delimitar bloques
- Evaluación en cortocircuito: Se ejecuta el primer
Trueencontrado - else es opcional: Puedes usar solo
ifoif-elif
Ejemplo: if simple
Section titled “Ejemplo: if simple”# Estructura if básicaedad = 20
if edad >= 18: print("Eres mayor de edad") print("Puedes votar")
print("Fin del programa")Ejemplo: if-else
Section titled “Ejemplo: if-else”# Estructura if-elsenumero = 7
if numero % 2 == 0: print(f"{numero} es par")else: print(f"{numero} es impar")
# Salida: 7 es imparEjemplo: if-elif-else
Section titled “Ejemplo: if-elif-else”# Estructura if-elif-elsenota = 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”Operadores relacionales
Section titled “Operadores relacionales”Los operadores relacionales comparan valores y generan expresiones booleanas:
| Operador | Descripción |
|---|---|
== | Igual a |
!= | Diferente de |
< | Menor que |
> | Mayor que |
<= | Menor o igual |
>= | Mayor o igual |
Operadores lógicos y de pertenencia
Section titled “Operadores lógicos y de pertenencia”| Operador | Descripción |
|---|---|
in | Verifica si un elemento está en una secuencia |
not in | Verifica si NO está |
and | Ambas condiciones deben ser True |
or | Al menos una debe ser True |
not | Invierte el valor booleano |
Ejemplo: Comparaciones numéricas
Section titled “Ejemplo: Comparaciones numéricas”# Operadores relacionalesedad = 25
if edad == 25: print("Tienes exactamente 25 años")
if edad >= 18: print("Puedes votar")
if edad < 65: print("No eres adulto mayor")Ejemplo: Operador in
Section titled “Ejemplo: Operador in”# Verificar pertenenciafrutas = ["manzana", "pera", "uva"]
if "manzana" in frutas: print("Tenemos manzanas")
email = "usuario@example.com"
if "@" in email: print("Email válido")Ejemplo: Condiciones compuestas
Section titled “Ejemplo: Condiciones compuestas”# Usar andedad = 25tiene_licencia = True
if edad >= 18 and tiene_licencia: print("Puedes conducir")
# Usar ordia = "sábado"
if dia == "sábado" or dia == "domingo": print("Es fin de semana")🔄 5.4 Anidamiento de condiciones
Section titled “🔄 5.4 Anidamiento de condiciones”Concepto de anidamiento
Section titled “Concepto de anidamiento”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.
Cuándo usar anidamiento
Section titled “Cuándo usar anidamiento”- 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
Buenas prácticas
Section titled “Buenas prácticas”- 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
Ejemplo: Anidamiento básico
Section titled “Ejemplo: Anidamiento básico”# Anidamiento de dos nivelesedad = 20tiene_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")Ejemplo: Anidado vs operadores
Section titled “Ejemplo: Anidado vs operadores”# Con anidamientoif 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.
Ejercicio 1: Validar edad
Section titled “Ejercicio 1: Validar edad”# Validar si una persona puede votaredad = 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")Ejercicio 2: Comparar dos números
Section titled “Ejercicio 2: Comparar dos números”# Comparar dos númerosnum1 = 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")Ejercicio 3: Clasificar edad
Section titled “Ejercicio 3: Clasificar edad”# Clasificar persona según edadedad = 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}")Ejercicio 4: Mayor de tres números
Section titled “Ejercicio 4: Mayor de tres números”# Encontrar el mayor de tres númerosnum1 = float(input("Primer número: "))num2 = float(input("Segundo número: "))num3 = float(input("Tercer número: "))
if num1 >= num2 and num1 >= num3: mayor = num1elif num2 >= num1 and num2 >= num3: mayor = num2else: mayor = num3
print(f"El mayor número es: {mayor}")Ejercicio 5: Calculadora de IMC
Section titled “Ejercicio 5: Calculadora de IMC”# Calcular IMC y clasificarpeso = 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")