Coincidencia estructural de patrones en Python
match/case: ramificar según la forma de los datos, no solo su valor.
def describir(comando):
match comando.split():
case ["ir", direccion]:
return f"caminas hacia {direccion}"
case ["mirar"]:
return "ves una pared de código"
case ["tomar", *elementos]:
return f"recogiste {len(elementos)} elementos"
case _:
return "comando desconocido"
print(describir("ir norte"))
print(describir("tomar espada escudo"))
Cómo funciona
- Cada
caseintenta encajar la lista del comando dividido. - Los patrones capturan partes en nombres como
direccion. *elementoscoincide con una cola de longitud variable.case _es el comodín final.
Palabras clave y builtins usados aquí
_casedeflenmatchprintreturn
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 338
- Tokens
- 88
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 59 segundos.
Paso 4 de 7 en Control de flujo; paso 19 de 72 en Fundamentos del lenguaje.