Python de Cero a Experto / Python avanzado
Pattern matching con match/case
Desde Python 3.10, el lenguaje tiene una herramienta elegante para comparar valores y actuar según su
FORMA: el PATTERN MATCHING con match/case. No es solo un switch de otros lenguajes —puede DESESTRUCTURAR
datos (extraer partes de una tupla, un diccionario o un objeto) mientras compara—. Para lógica que ramifica
según la estructura de los datos, es mucho más limpio que una cadena de if/elif. Hoy lo dominas.
El clasificador de paquetes
match/case básico
match valor: compara el valor contra cada case en orden, y ejecuta el PRIMERO que coincide. case "salir":
compara con un valor exacto; case _: es el comodín "cualquier otro" (el default); case "sabado" | "domingo":
coincide con varios valores. Hasta aquí se parece a un switch de otros lenguajes o a una cadena if/elif.
Pero su verdadero poder aparece cuando comparas ESTRUCTURAS.
Desestructurar según la forma
¿Qué hace especial al pattern matching (match/case) frente a un if/elif o un switch?
Mini-reto
Procesa comandos de Mi Bolsillo con match: 1) una función ejecutar(comando) donde comando es un
diccionario; 2) maneja los casos {"accion": "agregar", "nombre": n, "valor": v} (devuelve un mensaje de
gasto agregado capturando n y v), {"accion": "total"} (devuelve un total fijo), y {"accion": "salir"};
3) un case _ para comandos desconocidos. Bonus: agrega una guardia if v > 100000 en el caso de agregar
para marcar "gasto grande". Prueba con varios comandos.
Qué sigue
Ya ramificas por estructura con elegancia. La última lección del módulo trae ASYNCIO —la programación
asíncrona de Python (async/await)—, para manejar muchas tareas de espera (llamadas a APIs, lecturas) de
forma concurrente y eficiente. El mismo concepto de asincronía que dominaste en JavaScript, en su versión
Python.