Curso de python nivel medio
En Python, no existe una estructura de control switch como en otros lenguajes de programación (por ejemplo, C, Java, o JavaScript). Sin embargo, puedes lograr un comportamiento similar al switch usando diccionarios y funciones, o utilizando múltiples if-elif-else.
¿Qué es un switch?
Un switch es una estructura de control que te permite ejecutar diferentes bloques de código según el valor de una variable o expresión. Es útil cuando tienes muchas condiciones que dependen de un solo valor y no quieres escribir muchos if-elif-else.
Simular un switch en Python
Como Python no tiene un switch nativo, puedes usar un diccionario para simular este comportamiento.
Ejemplo de un switch simulado usando un diccionario
- Usar un diccionario para simular
switch:1def lunes(): 2 return "Hoy es lunes" 3 4def martes(): 5 return "Hoy es martes" 6 7def miercoles(): 8 return "Hoy es miércoles" 9 10def dia_invalido(): 11 return "Día no válido" 12 13# Diccionario que actúa como un switch 14switch = { 15 1: lunes, 16 2: martes, 17 3: miercoles, 18} 19 20# Variable que contiene el día de la semana 21dia = 2 22 23# Usamos el diccionario para llamar la función correcta 24mensaje = switch.get(dia, dia_invalido)() 25print(mensaje)Salida de Consola!: Hoy es martes
- ¿Qué hace?:
- Se definen varias funciones, cada una representando un día de la semana.
- Se crea un diccionario
switchque mapea números (1, 2, 3) a funciones. - Se selecciona un día (
dia = 2) y se usaswitch.get(dia, dia_invalido)para obtener la función correspondiente. Si el día no está en el diccionario, se llama adia_invalido. - La función seleccionada se ejecuta con
(), y su resultado se almacena enmensaje. - Finalmente, se imprime el mensaje correspondiente.
- ¿Qué hace?:
Ejemplo usando if-elif-else como alternativa a switch
Si no quieres usar un diccionario, puedes usar if-elif-else:
- Usar
if-elif-elseen lugar deswitch:1dia = 3 2 3if dia == 1: 4 mensaje = "Hoy es lunes" 5elif dia == 2: 6 mensaje = "Hoy es martes" 7elif dia == 3: 8 mensaje = "Hoy es miércoles" 9else: 10 mensaje = "Día no válido" 11 12print(mensaje)Salida de Consola!: Hoy es miércoles
- ¿Qué hace?: Este código utiliza
if-elif-elsepara evaluar el valor dediay asigna el mensaje correspondiente. Sidiaes1, imprime "Hoy es lunes"; si es2, "Hoy es martes"; si es3, "Hoy es miércoles"; y para cualquier otro valor, imprime "Día no válido".
- ¿Qué hace?: Este código utiliza
¿Por qué Python no tiene un switch?
Python no tiene un switch porque las estructuras de control if-elif-else y las soluciones con diccionarios son lo suficientemente poderosas y flexibles para manejar casos en los que normalmente se usaría un switch. Estas alternativas son claras, concisas y permiten un código fácil de leer.
Conclusión
Aunque Python no tiene un switch nativo, puedes lograr el mismo resultado usando diccionarios o múltiples if-elif-else. Estas alternativas son efectivas y permiten un código bien organizado. ¡Practica usando estas estructuras en diferentes situaciones para entender cuál se adapta mejor a tus necesidades!
- Loading...