Skip to content

Declaración de Switch Case en Python: Cómo Implementar Declaraciones de Switch en Python

Python, un lenguaje de programación versátil y poderoso, ha ido evolucionando a lo largo de los años, introduciendo nuevas características y funcionalidades para mejorar su usabilidad y eficiencia. Una de las características que ha llamado la atención de los desarrolladores de Python en todo el mundo es la introducción de las declaraciones de Switch Case en Python 3.10. En este artículo se explorarán los detalles de las declaraciones de Switch Case en Python, su funcionamiento y las alternativas disponibles.

¿Quieres crear rápidamente visualizaciones de datos a partir de un DataFrame de Python Pandas sin necesidad de escribir código?

PyGWalker es una biblioteca de Python para análisis exploratorio de datos con visualización. PyGWalker (opens in a new tab) puede simplificar tu flujo de trabajo de análisis de datos y visualización de datos en Jupyter Notebook, convirtiendo tu DataFrame de pandas (y DataFrame de polars) en una interfaz de usuario estilo Tableau para la exploración visual.

PyGWalker para visualización de datos (opens in a new tab)

¿Qué es una Declaración de Switch Case en Python?

Las declaraciones de Switch Case, también conocidas como coincidencia estructural, son una característica común en muchos lenguajes de programación. Sin embargo, estaban ausentes en Python hasta la introducción de la versión 3.10. Una declaración de Switch Case es un tipo de declaración de control que permite probar una variable en busca de igualdad con una lista de valores. Cada valor se llama un caso, y se verifica la variable en la que se realiza el switch para cada caso.

En Python 3.10, la declaración de Switch Case se implementa utilizando la palabra clave match, seguida de una expresión. La palabra clave case se utiliza para definir los diferentes casos, y se ejecuta el código debajo de cada caso si la expresión coincide con el caso.

¿Por qué no había una Declaración de Switch Case en Python antes de la versión 3.10?

A diferencia de otros lenguajes de programación, Python no incluía una declaración de Switch Case antes de la versión 3.10. La razón principal de esto es la filosofía de Python de simplicidad y legibilidad. Los creadores de Python creían que la inclusión de declaraciones de Switch Case podía llevar a un código más complejo y menos legible. En su lugar, Python utilizaba declaraciones if-elif-else para manejar múltiples condiciones, lo cual cumplía un propósito similar a las declaraciones de Switch Case pero de una manera más Pythonica.

Sin embargo, con la versión 3.10 de Python, el lenguaje ha introducido declaraciones de Switch Case, reconociendo su potencial para mejorar la eficiencia y legibilidad del código en ciertas situaciones.

¿Cómo funciona Switch Case en Python 3.10?

En Python 3.10, las declaraciones de Switch Case se implementan utilizando las palabras clave match y case. Aquí hay un ejemplo básico de cómo funciona:

def switch_case(x):
    match x:
        case 1:
            return "uno"
        case 2:
            return "dos"
        default:
            return "desconocido"

En este ejemplo, la función switch_case recibe un argumento x. La palabra clave match se utiliza para comparar el argumento x con diferentes casos. Si x es 1, la función devuelve "uno". Si x es 2, devuelve "dos". El caso default se utiliza como un valor predeterminado si x no coincide con ninguno de los casos definidos.

¿Cuáles son las alternativas a Switch Case en Python?

Antes de la introducción de las declaraciones de Switch Case en Python 3.10, los desarrolladores de Python utilizaban diversos métodos para simular la funcionalidad de una declaración de Switch Case. Uno de los métodos más comunes es utilizar un diccionario para asignar valores a funciones o resultados. Aquí tienes un ejemplo:

def uno():
    return "uno"
 
def dos():
    return "dos"
 
def desconocido():
    return "desconocido"
 
switch_dict = {
    1: uno,
    2: dos
}
 
def switch_case_dict(x):
    return switch_dict.get(x, desconocido)()

En este ejemplo, el diccionario switch_dict asigna los valores 1 y 2 a las funciones uno y dos, respectivamente. El método get del diccionario se utiliza para recuperar la función correspondiente a la entrada x, y si x no está en el diccionario, se utiliza la función desconocido como valor predeterminado.

Continuando desde donde lo dejamos, aquí están los segmentos restantes:

Equivalente sintáctico de Switch Case en Python

Antes de la llegada de Python 3.10, los desarrolladores solían utilizar declaraciones if-elif-else como un equivalente sintáctico de las declaraciones de Switch Case. Estas declaraciones permiten evaluar múltiples expresiones y ejecutar un bloque de código tan pronto como una de las condiciones se evalúa como verdadera. Aquí tienes un ejemplo:

def switch_case_if(x):
    if x == 1:
        return "uno"
    elif x == 2:
        return "dos"
    else:
        return "desconocido"

En este ejemplo, la función switch_case_if recibe un argumento x. Si x es 1, la función devuelve "uno". Si x es 2, devuelve "dos". La declaración else sirve como un caso predeterminado, devolviendo "desconocido" si x no coincide con ninguna de las condiciones anteriores.

Rendimiento de las Declaraciones de Match Case (Switch Case) en Python

El rendimiento de las declaraciones de Match Case de Python es comparable al de las declaraciones if-elif-else. Sin embargo, las declaraciones de Match Case pueden proporcionar una mayor legibilidad y mantenibilidad, especialmente cuando se trata de un gran número de casos. Es importante tener en cuenta que el rendimiento puede variar dependiendo del caso de uso específico y la complejidad de los patrones involucrados.


Preguntas frecuentes

Ahora, vamos a responder algunas preguntas frecuentes sobre las declaraciones de Switch Case en Python:

¿Cuál es el equivalente sintáctico de Switch Case en Python?

Antes de Python 3.10, los desarrolladores a menudo utilizaban declaraciones if-elif-else como un equivalente sintáctico a las declaraciones Switch Case. Estas declaraciones permiten que el código evalúe múltiples expresiones y ejecute un bloque de código tan pronto como una de las condiciones se evalúe como verdadera.

¿Cómo simular Switch Case en Python usando un diccionario?

Se puede utilizar un diccionario para simular una declaración Switch Case en Python. Las claves del diccionario actúan como los casos, y los valores son los resultados o las funciones a ejecutar. El método get del diccionario se puede utilizar para recuperar el resultado para un caso dado, con un valor predeterminado opcional si el caso no se encuentra en el diccionario.

¿Cuál es el rendimiento de las declaraciones Match Case (Switch Case) de Python?

El rendimiento de las declaraciones Match Case de Python es comparable al de las declaraciones if-elif-else. Sin embargo, las declaraciones Match Case pueden proporcionar una mejor legibilidad y mantenibilidad, especialmente cuando se trata de un gran número de casos. El rendimiento puede variar según el caso de uso específico y la complejidad de los patrones involucrados.

Conclusión

Esto concluye el artículo sobre las declaraciones Switch Case de Python. Proporciona una visión general completa del tema, incluyendo qué son, por qué no se incluyeron en Python antes de la versión 3.10, cómo funcionan en Python 3.10 y las alternativas disponibles. El artículo también responde algunas preguntas frecuentes sobre las declaraciones Switch Case de Python.