🔶 Match-case
✅ Definición
Python no tiene una estructura switch como otros lenguajes como C, Java o
JavaScript. Sin embargo, desde Python 3.10 se introdujo la sentencia match-
case, que permite crear estructuras similares a un switch.
✅ Características
Se basa en patrones de coincidencia (pattern matching).
Se usa la sintaxis match variable: seguida de varios case.
Funciona muy bien con valores exactos, tuplas, listas, tipos de datos,
estructuras complejas.
Más potente que un switch tradicional, ya que permite condiciones más
complejas.
✅ Sintaxis Básica
valor = 2
match valor:
case 1:
print("Uno")
case 2:
print("Dos")
case 3:
print("Tres")
case _:
print("Otro valor")
🔸 case _: es similar a default: en otros lenguajes.
✅ Usos
Menús de opciones.
Evaluación de variables.
Sustitución de múltiples if-elif-else.
Validación de datos.
Juegos, simulaciones, etc.
✅ Ejemplos
📌 Ejemplo 1: Menú de operaciones
opcion = input("Ingrese una opción (1: Sumar, 2:
Restar): ")
match opcion:
case "1":
print("Has elegido sumar.")
case "2":
print("Has elegido restar.")
case _:
print("Opción no válida.")
📌 Ejemplo 2: Días de la semana
dia = input("Ingrese el número del día (1-7): ")
match dia:
case "1":
print("Lunes")
case "2":
print("Martes")
case "3":
print("Miércoles")
case "4":
print("Jueves")
case "5":
print("Viernes")
case "6":
print("Sábado")
case "7":
print("Domingo")
case _:
print("Día inválido")
🔷 10 EJERCICIOS RESUELTOS
1. Día de la semana (como el ejemplo anterior).
2. Calificación cualitativa
nota = int(input("Ingrese la nota (1-5): "))
match nota:
case 1:
print("Muy deficiente")
case 2:
print("Insuficiente")
case 3:
print("Suficiente")
case 4:
print("Notable")
case 5:
print("Excelente")
case _:
print("Nota no válida")
3. Semáforo
color = input("Color del semáforo: ").lower()
match color:
case "rojo":
print("Detenerse")
case "amarillo":
print("Precaución")
case "verde":
print("Avanzar")
case _:
print("Color no reconocido")
4. Estaciones del año
mes = int(input("Ingrese el número del mes: "))
match mes:
case 12 | 1 | 2:
print("Invierno")
case 3 | 4 | 5:
print("Primavera")
case 6 | 7 | 8:
print("Verano")
case 9 | 10 | 11:
print("Otoño")
case _:
print("Mes no válido")
5. Tipo de comida
comida = input("¿Qué vas a comer? ").lower()
match comida:
case "pizza":
print("Comida italiana")
case "sushi":
print("Comida japonesa")
case "gallo pinto":
print("Comida costarricense")
case _:
print("Comida no identificada")
6. Clasificación por edades
edad = int(input("Ingrese la edad: "))
match edad:
case edad if edad < 13:
print("Niño")
case edad if edad < 18:
print("Adolescente")
case edad if edad < 60:
print("Adulto")
case _:
print("Adulto mayor")
7. Calcular precio por tipo de entrada
tipo = input("Tipo de entrada (normal, estudiante,
adulto mayor): ").lower()
match tipo:
case "normal":
print("Precio: ₡3000")
case "estudiante":
print("Precio: ₡1500")
case "adulto mayor":
print("Precio: ₡1000")
case _:
print("Tipo no reconocido")
8. Tipo de animal
animal = input("Dime un animal: ").lower()
match animal:
case "perro" | "gato":
print("Animal doméstico")
case "tigre" | "león":
print("Animal salvaje")
case _:
print("Animal no identificado")
9. Menú de frutas
fruta = input("Elige una fruta (manzana, banano,
naranja): ")
match fruta:
case "manzana":
print("Fruta roja")
case "banano":
print("Fruta amarilla")
case "naranja":
print("Fruta anaranjada")
case _:
print("Fruta no disponible")
10. Código de país
codigo = input("Ingrese código de país: ")
match codigo:
case "506":
print("Costa Rica")
case "1":
print("[Link] o Canadá")
case "34":
print("España")
case _:
print("Código no identificado")
11. Rango de edad
edad = int(input("Ingrese su edad: "))
match edad:
case edad if 0 <= edad <= 12:
print("Eres un niño.")
case edad if 13 <= edad <= 17:
print("Eres un adolescente.")
case edad if 18 <= edad <= 64:
print("Eres un adulto joven.")
case edad if edad >= 65:
print("Eres un adulto mayor.")
case _:
print("Edad no válida.")
🔷 Resuelva los siguientes ejercicios
1. El usuario ingresa el nombre de un electrodoméstico y el programa le dice si
es de cocina o de limpieza.
2. Pida al usuario el nombre de una red social y diga si es de mensajería, imágenes
o videos.
3. Ingrese un número del 1 al 7 y diga qué día de la semana es y si es laboral o
fin de semana.
4. El usuario escribe un color y el programa le dice si es un color cálido, frío o
neutro.
5. Escriba un programa que muestre un menú de opciones para la compra de
combustible en una gasolinera. Las opciones son Gasolina Regular, Gasolina
Super, Diesel y Gas. El precio de la Regular es 575, la Super 625, el Diesel 600
y el Gas 450 el litro.
6. Escriba un programa que muestre un menú de opciones para la compra de
entradas al cine. Debe mostrar 5 títulos de películas y alguna debe estar en
promoción con el valor de la entrada más barata al precio normal. Cada película
se proyecta en salas diferentes y un valor de entrada diferente. Debe solicitarle
al usuario cuál película desea ver y la cantidad de entradas. Al final debe
mostrar el desglose de la compra.