1. Teoría (if / else)
2. Múltiples (elif)
3. Match-Case
4. Resumen Interactivo
5. Laboratorio

Estructuras Condicionales

Hasta ahora, nuestros programas ejecutaban instrucciones en línea recta. Hoy profundizaremos en cómo dotar de "razonamiento" a la máquina para que evalúe situaciones y elija diferentes caminos de forma autónoma.

Inicializando Motor de Python... (Espera un momento)

1. Bifurcaciones: if / if-else

En el mundo real, la solución a un problema casi nunca es una línea recta. Dependemos de condiciones: "Si mi saldo es mayor al precio, compro el juego; si no, sigo ahorrando."

Para lograr esto en código, utilizamos una estructura que evalúa una Expresión Lógica. Dependiendo si el resultado es True o False, el flujo del programa se desvía.

Comparativa en Lenguajes Visuales

Explora cómo se ve el concepto de decisión en distintas herramientas que usamos en años anteriores:

Diagrama de Flujo - Pseint
Micro:bit

En los diagramas, la decisión se representa con un Rombo. Tiene una entrada y dos salidas estrictas (Verdadero o Falso).

Diagrama de Flujo

En pseudocódigo (PSeInt), utilizamos las palabras reservadas Si, Entonces y SiNo.

En MakeCode para Micro:bit, los bloques lógicos las piezas hexagonales (booleanas) dentro del bloque "Si <_> entonces Sino ".

Condicional en microbit

En Scratch, el famoso bloque en forma de "C" envuelve las acciones que se ejecutan si / si no.

Sintaxis Formal en Python

En Python, nos deshacemos de los bloques visuales y dependemos de la Indentación (sangría). La indentación le dice a Python qué código pertenece "adentro" de la decisión.

if condicion_logica:
    # Si es True, ejecuta este bloque indentado
    print("Condición cumplida")
else:
    # Si es False, ejecuta este bloque alternativo
    print("Condición no cumplida")
Actividad 1.1

Estructura if simple

Usa un if simple (sin else). Verifica si la variable puntos es mayor a 1000. Si lo es, imprime "¡Nivel Desbloqueado!".

Actividad 1.2

Estructura if-else (Binaria)

Verifica si la contrasena ingresada es exactamente igual a "admin123". Usa if-else para imprimir "Acceso concedido" o "Acceso denegado".

Actividad 1.3

Operador Módulo y Lógica

En matemáticas, si el resto de dividir un número entre 2 es cero, el número es par. Usa if numero % 2 == 0: para imprimir si el número es "Par" o "Impar".

2. Múltiples Caminos (elif)

La estructura if - else es binaria (blanco o negro). Sin embargo, muchos problemas requieren evaluar rangos o varias opciones (Ej: Categorías de peso, calificaciones, estados del clima).

Si usaramos puros if dentro de otros if (anidación), el código se iría empujando hacia la derecha formando una pirámide difícil de leer. Para solucionarlo, Python utiliza la cláusula elif (Else If).

Razonamiento de Ejecución ("Cortocircuito"):
Cuando Python evalúa un bloque if - elif - else, lo hace desde arriba hacia abajo. En el instante exacto en que una condición resulta True, ejecuta ese bloque y salta automáticamente hasta el final, ignorando todo el resto de las comprobaciones.

Sintaxis Formal

if condicion_1:
    print("Bloque 1")
elif condicion_2:
    # Solo se evalúa si la condicion_1 fue False
    print("Bloque 2")
else:
    # Se ejecuta si TODAS las anteriores fueron False
    print("Bloque por defecto")
Actividad 2.1

El Termómetro Inteligente

Clasifica el clima: Si temp > 30 imprime "Calor". Elif temp > 20 imprime "Agradable". Elif temp > 10 imprime "Fresco". Else, imprime "Frío".

Actividad 2.2

El Semáforo

Evalúa la variable color. Si es "Rojo" -> "Detener". Elif "Amarillo" -> "Precaución". Elif "Verde" -> "Avanzar". Else -> "Color inválido".

Actividad 2.3

Niveles de Batería

Si la batería es > 80 imprime "Batería Alta". Si es > 20 imprime "Batería Media". Si es <= 20 imprime "Batería Baja".

3. Selección Exacta (match-case)

Introducida en Python 3.10, la estructura match-case (conocida como switch-case en otros lenguajes) está diseñada específicamente para comparar el valor de una variable contra patrones o valores exactos.

¿Por qué usarlo si ya tenemos elif? Cuando evaluamos un menú de opciones, escribir elif opcion == "A": repetidas veces ensucia el código. match-case es más elegante, directo y rápido para el procesador cuando hay coincidencias cerradas.

Sintaxis Formal

match variable:
    case "Opcion_1":
        print("Acción 1")
    case "Opcion_2":
        print("Acción 2")
    case _:
        # El guion bajo (_) actúa como un 'else'. Es el caso por defecto.
        print("Opción no válida")
Actividad 3.1

Días de la Semana

Usa match en la variable dia. Para 1 imprime "Lunes", 2 "Martes", etc. Usa el caso _ para imprimir "Día inválido".

Actividad 3.2

Códigos de Error Web

Match error: 404 -> "No encontrado", 500 -> "Error de servidor", 403 -> "Prohibido", caso _ -> "Código desconocido".

Actividad 3.3

Menú de Comandos

Evalúa el string comando. "W" -> "Arriba", "S" -> "Abajo", "A" -> "Izquierda", "D" -> "Derecha", caso _ -> "Tecla no asignada".

4. Resumen Interactivo

Antes de pasar a los laboratorios de codificación, repasa conceptualmente cada estructura y observa en tiempo real cómo la computadora evalúa e "ilumina" el código según los valores que ingreses.

if simple

Evalúa una condición.
Si es True, ejecuta el bloque. Si es False, no hace nada y el programa continúa.

if-else

Bifurcación estricta.
Asegura que se ejecute un camino o el otro. Es blanco o negro.

elif

Anidación limpia.
Permite evaluar múltiples condiciones en cadena. Se detiene en el primer True.

match-case

Selección exacta.
Compara una variable contra valores exactos. Ideal para menús.

1. Comportamiento del if simple

Si es menor o igual a 100, la computadora salta el bloque sin entrar.

if puntaje > 100:
print("¡Bonus desbloqueado!")
print("Fin del juego")

2. Comportamiento del if - else

if clima == "Lluvia":
print("Llevar paraguas")
else:
print("Llevar lentes de sol")

3. Comportamiento en cadena elif

if edad < 13:
print("Infantil")
elif edad < 18:
print("Adolescente")
else:
print("Adulto")

4. Comportamiento match-case

match nota:
case "A": return "Excelente"
case "B": return "Bueno"
case _: return "No válido"

5. Laboratorio Final

Ya dominas la teoría. Ahora pondrás a prueba tu capacidad de modelar escenarios complejos mediante código interactivo.

Laboratorio 1: El Escenario Minecraft

Estás programando la Inteligencia Artificial (IA) de un aldeano en Minecraft que acaba de ver a un Zombie. Tu objetivo es escribir el bloque de código que decide qué hará el aldeano.

Instrucciones de la IA:
1. Si el aldeano tiene espada (True) Y su vida es mayor a 50, debe imprimir "¡Atacar al zombie!".
2. De lo contrario, si su vida es menor o igual a 50 (sin importar el arma), debe imprimir "¡Huir rápidamente!".
3. Para cualquier otro caso (ej. vida alta pero sin espada), debe imprimir "Esconderse en la casa."
Lab Minecraft

Laboratorio 2: Situación - Problema

Selecciona una de los problemas del menú desplegable. El editor cambiará dinámicamente y te presentará el código para esa situación. Estudia el problema, modifica las variables y ejecuta el programa para ver cómo reacciona.

Editor de Proyecto