Semana 8 - Python

🚦 ¡Tu Código Elige su Propia Aventura! 🚦
Dominando las decisiones con múltiples caminos en Python
¡Hola, programador/a! 👋 Ya conoces la estructura if-else
. Es como llegar a una bifurcación en un videojuego: puedes ir por la puerta de la izquierda o la de la derecha. ¡Solo dos opciones!
Pero... ¿y si tu aventura tiene muchas puertas diferentes? ¿Qué pasa si necesitas que tu código elija entre múltiples resultados posibles? Para eso, tenemos tres herramientas súper poderosas. ¡Vamos a conocerlas!
😵 1. El Laberinto: `if` Anidados
Imagina que tienes que poner una nota (A, B, C, D, E, F) según un puntaje. Una forma de hacerlo es meter un if-else
dentro de otro if-else
, y así sucesivamente. A esto se le llama anidar condicionales ℹ️. ¡Funciona, pero mira cómo queda el código!
def calificar_anidado(puntos):
if puntos >= 90:
print("A")
else:
if puntos >= 80:
print("B")
else:
if puntos >= 65:
print("C")
else:
# ...¡y así sigue! Se vuelve muy profundo y difícil de leer.
Es como un laberinto. Es fácil perderse y el código se ve desordenado. Puede ser útil para situaciones muy complejas, pero para una lista de opciones... ¡hay una forma mejor!
✨ 2. El Héroe de la Claridad: `elif`
elif
es la abreviatura de "else if" ("y si no, si..."). ¡Es la solución perfecta para simplificar el laberinto anterior! Nos permite poner varias condiciones en una misma lista, de forma ordenada y fácil de leer.
Veamos el mismo ejemplo de las calificaciones, pero usando el poder de elif
:
def calificar_con_elif(puntos):
if puntos >= 90:
print("A")
elif puntos >= 80:
print("B")
elif puntos >= 65:
print("C")
elif puntos >= 50:
print("D")
elif puntos >= 25:
print("E")
else:
print("F")
¡Mucho más limpio! El código se lee de arriba a abajo. Python revisa cada condición en orden y, en cuanto una es verdadera, ejecuta su código y se salta el resto. ¡Eficiente y ordenado!
🎯 3. El Especialista: `match-case`
A veces, no quieres comprobar rangos (como "mayor que 80"), sino que quieres comprobar si una variable es exactamente igual a un valor específico. Por ejemplo, si tienes la nota "A" y quieres imprimir "Excelente".
Para esto, Python tiene una estructura especial llamada match-case
. Es como un interruptor con muchas posiciones. Le das un valor y "matchea" (coincide) con el caso correcto.
def descripcion_de_nota(nota):
match nota:
case "A":
print("¡Excelente!")
case "B":
print("Muy bueno")
case "C":
print("Satisfactorio")
case _: # Este es el caso "comodín"
print("Calificación no reconocida")
¿Qué hace case _? ℹ️
match-case
es súper útil cuando tienes una lista de opciones claras y discretas (como días de la semana, tipos de usuario, etc.).
🤔 4. ¿Cuál Herramienta Uso? ¡La Tabla de Decisión!
¡Buena pregunta! Cada estructura tiene su momento para brillar. Aquí tienes una guía rápida:
Estructura | Cuándo Usarla (Superpoder) | Ejemplo de Misión |
---|---|---|
If Anidado | Cuando las decisiones son complejas y dependen unas de otras, como un árbol de decisiones. | Verificar si un usuario está logueado Y si tiene permisos de administrador Y si la cuenta está activa. |
Elif | Cuando tienes una serie de condiciones exclusivas y ordenadas. ¡Perfecto para rangos! | Poner notas según un puntaje (90+, 80-89, etc.). O definir la etapa de vida según la edad. |
Match-Case | Cuando quieres comparar una única variable contra muchos valores exactos y diferentes. | Ejecutar una acción según el día de la semana, o mostrar un menú según la opción elegida ("opcion1", "opcion2"...). |
if
principal que adentro tenga un match-case
. ¡Así usas el poder de cada una donde más brilla!
🚀 5. ¡A Programar!
Ahora que conoces estas tres poderosas herramientas, ¡tu habilidad para crear programas complejos ha subido de nivel! Ya no estás limitado a dos caminos. Puedes crear lógicas con tantas decisiones como necesites, haciendo tu código más inteligente, flexible y ordenado.
¡Experimenta con ellas y elige la mejor para cada aventura!
¡Mucho éxito, dev! 🎉
¿Qué es "Anidar"?
En programación, "anidar" significa poner una estructura dentro de otra. Como las muñecas rusas (matrioskas), donde una contiene a otra más pequeña, y esa a otra...
Ejemplo:
- Un
if
dentro de otroif
. - Un bucle
for
dentro de otro buclefor
.
Es una técnica muy poderosa, pero si se usa demasiado (como en el ejemplo del laberinto), puede hacer que el código sea difícil de seguir. La clave es usarla con moderación.
El Caso Comodín: `case _`
El guion bajo (_
) en un match-case
es un comodín o wildcard. Actúa como la opción "por defecto".
¿Cómo funciona?
- Python revisa todos los
case
de arriba hacia abajo. - Si el valor no coincide con NINGUNO de los casos específicos (como "A", "B", "C"), entonces se ejecutará el código del
case _
.
Es exactamente igual que el else
final en una estructura if-elif
. Sirve para manejar todas las posibilidades que no contemplaste explícitamente. ¡Es muy importante para evitar errores!