Resumen
La sentencia match de Python 3.10 simplifica el control de flujo con una sintaxis clara y legible. Si vienes de otros lenguajes, se siente similar a un switch, pero con el estilo Python. Aquí verás cómo sustituir cadenas de if, elif, else por casos bien definidos con case y cómo usar el comodín _ para capturar lo no contemplado.
¿Qué es la sentencia match en Python 3.10?
La idea central: evaluar una expresión y comparar su valor contra varios casos. Si hay coincidencia, se ejecuta el bloque asociado. Es ideal para reemplazar secuencias repetitivas de if/elif.
- Introducida en Python 3.10: sintaxis moderna y clara.
- Inspiración de switch: enfoque por coincidencia de valor.
- Estructura básica: una expresión, varios case, y un caso comodín con _.
- Control de flujo más limpio: reemplaza if, elif, elif, else.
¿Por qué reemplaza if/elif/else?
- Menos repetición: un único punto de comparación.
- Legibilidad: cada case expresa la intención del caso.
- Mantenimiento: agregar o cambiar un caso es directo.
¿Cómo funciona el comodín _?
- _ captura cualquier valor que no coincida con los casos previos.
- Útil para mostrar un mensaje por defecto.
¿Cómo usar match con el día de la semana?
El ejemplo define una variable dia y usa match para imprimir el nombre del día según un número. Si el valor no coincide con los casos definidos, se muestra un mensaje por defecto con _.
# Python 3.10+
dia = 1
match dia:
case 1:
print("hoy es lunes")
case 2:
print("hoy es martes")
case 3:
print("hoy es miércoles")
case _:
print("No coincide con ninguna de las anteriores opciones")
- Si dia = 1: imprime "hoy es lunes".
- Si dia = 2: imprime "hoy es martes".
- Si dia = 3: imprime "hoy es miércoles".
- Si dia no es 1, 2 o 3: entra en case _ y muestra el mensaje por defecto.
¿Cómo cambiar el valor y ver el resultado?
- Modifica dia a 2 para ver "hoy es martes".
- Modifica dia a 3 para ver "hoy es miércoles".
- Usa un valor no declarado (por ejemplo 9) para activar case _.
¿Qué habilidades y conceptos pones en práctica?
- Control de flujo con match y case.
- Mapeo de valores numéricos a mensajes.
- Uso del comodín _ para casos no contemplados.
- Pruebas cambiando entradas para verificar salidas.
¿Qué ejercicio practicar con strings y case?
Se propone cambiar la comparación de números por texto. En vez de 1, 2, 3, usa un string y compara de la misma forma. Así ejercitas la coincidencia por valor y el manejo del caso por defecto.
# Ejercicio sugerido
# Cambia dia_num por un string, por ejemplo: "lunes", "martes", "miércoles"
dia_txt = "lunes"
match dia_txt:
case "lunes":
print("hoy es lunes")
case "martes":
print("hoy es martes")
case "miércoles":
print("hoy es miércoles")
case _:
print("No coincide con ninguna de las anteriores opciones")
¿Cómo compartir tu solución y aprender más?
- Crea tu versión más creativa con strings.
- Prueba varios valores y el caso _.
- Comenta tu solución y resultados para que todos aprendamos juntos.