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

  1. 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 switch que mapea números (1, 2, 3) a funciones.
      • Se selecciona un día (dia = 2) y se usa switch.get(dia, dia_invalido) para obtener la función correspondiente. Si el día no está en el diccionario, se llama a dia_invalido.
      • La función seleccionada se ejecuta con (), y su resultado se almacena en mensaje.
      • Finalmente, se imprime el mensaje correspondiente.

Ejemplo usando if-elif-else como alternativa a switch

Si no quieres usar un diccionario, puedes usar if-elif-else:

  1. Usar if-elif-else en lugar de switch:
    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-else para evaluar el valor de dia y asigna el mensaje correspondiente. Si dia es 1, imprime "Hoy es lunes"; si es 2, "Hoy es martes"; si es 3, "Hoy es miércoles"; y para cualquier otro valor, imprime "Día no válido".

¿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...