Practica match / case tomando decisiones con valores concretos
Ocho problemas para utilizar case _, trabajar con números y texto y aprender a elegir cuándo conviene match y cuándo if.
La caja negra de un dron
Obligatorio · match básicoUn dron educativo guarda un código al terminar el vuelo:
0→ Vuelo finalizado correctamente1→ Batería agotada2→ Pérdida de señal3→ Aterrizaje de emergencia
Pide el código registrado y muestra el mensaje correspondiente. Cualquier otro valor debe producir Código de vuelo desconocido.
Condiciones: usa match / case, convierte la entrada al tipo adecuado y utiliza case _.
La salida aparecerá aquí.
match.¿Qué está diciendo el robot?
Obligatorio · cadenasUn robot recibe las órdenes avanza, retrocede, izquierda, derecha y para.
Pide una orden y responde con la acción correspondiente. Para cualquier otra palabra, muestra Comando no reconocido.
Reto: no conviertas el input() a entero. Los propios textos serán los valores de los case.
La salida aparecerá aquí.
case pueden coincidir directamente con cadenas de texto.Mensaje recibido desde Marte
Refuerzo · opcionalUna estación recibe PING, DATA, PHOTO, ERROR o SLEEP.
PING→ Sonda operativaDATA→ Recibiendo telemetríaPHOTO→ Descargando imagenERROR→ La sonda comunica una averíaSLEEP→ Sonda en modo de bajo consumo
Cualquier otro mensaje será desconocido.
Antes de programar: escribe un comentario explicando por qué match resulta natural aquí.
La salida aparecerá aquí.
El ascensor imposible
Obligatorio · tiposDestinos: -1 laboratorio subterráneo, 0 acceso, 1 taller de electrónica, 2 laboratorio de redes y 3 azotea de comunicaciones.
Pide ¿A qué planta quieres ir? y muestra el destino. Si no existe, muestra Esa planta no existe.
Trampa deliberada: prueba primero con planta = input(...) y casos numéricos como case 2:. Después corrígelo y explica en un comentario por qué fallaba.
La salida aparecerá aquí.
input() devuelve texto: "2" no coincide con el número 2.El taller del futuro
Refuerzo · opcionalMuestra un terminal con cinco operaciones: consultar estado, reiniciar controlador, ejecutar diagnóstico, calibrar sensores y apagar sistema.
Cada opción debe producir al menos dos mensajes razonables. Para cualquier otro número, muestra Operación no disponible.
No vale limitarse a imprimir «Opción 1», «Opción 2»...
La salida aparecerá aquí.
case puede contener varias instrucciones.El detector de protocolo
Obligatorio · valores concretosIdentifica estos puertos: 22 SSH, 53 DNS, 80 HTTP, 443 HTTPS, 1883 MQTT y 8883 MQTT seguro.
Pide el puerto y muestra el servicio y una breve descripción. Para cualquier otro, muestra Puerto no incluido en nuestra base de datos.
Razonamiento: ¿serviría if puerto > 1000 para obtener la misma información? Explica por qué no.
La salida aparecerá aquí.
¿if o match?
Obligatorio · elegir estructuraDecide si usarías if / elif / else o match / case para: batería por debajo del 20 %, comandos start/stop/reset, temperatura superior a 80 °C, códigos 0-3, edad entre 18 y 65, modos manual/auto/mantenimiento, poca batería o temperatura elevada y estados online/offline/error.
Justifica cada elección en una frase. Después programa solo los dos últimos casos.
La salida aparecerá aquí.
if; varios valores concretos de una misma variable → match.Central de control de una nave
Obligatorio · práctica finalLa nave recibe NAV, SCAN, PHOTO, SEND, RETURN o SLEEP.
Pide el código, utiliza match / case y muestra dos líneas: descripción de la operación y qué ocurre.
Los códigos desconocidos deben mostrar Código desconocido y No se ejecutará ninguna operación.
Antes de ejecutar: predice en comentarios qué ocurrirá con PHOTO, SLEEP, RESET y RETURN.
Ampliación opcional: inventa un nuevo código.
La salida aparecerá aquí.
case _, varias instrucciones y predicción del flujo.