© Maria Vonotna/Shutterstock.com

En general, la programación tiene como objetivo hacer que un problema complejo sea lo más simple posible. De esta manera, los casos de cambio pueden ser muy útiles para ejecutar código específico según el valor o la variable en cuestión. En Python, no hay cambio de caso, por lo que tenemos que usar una alternativa. Descubra cómo implementar Switch Case en Python hoy.

¿Qué es Switch Case?

En pocas palabras, las declaraciones de Switch Case permiten que su programa realice diferentes funciones dependiendo del valor de una variable o declaración. De esta forma, la instrucción switch case evalúa el valor y compara el resultado con algunas reglas predefinidas que haya implementado. En cada caso, se deben realizar acciones específicas si el valor coincide con el caso del interruptor. También puede configurar un código predeterminado para que se ejecute si ninguno de los casos de cambio coincide.

Si bien Python no tiene un cambio de caso, muchos otros lenguajes de programación sí lo tienen. Como tal, vamos a ilustrar cómo funciona un cambio de caso en C:

interruptor (expresión) { caso valor1: #código para ejecutar si expresión=valor1 ruptura; case value2: #código a ejecutar if expresión=value2 break; case value3: #código a ejecutar if expresión=value3 break; predeterminado: #código a ejecutar si la expresión no coincide con ninguno de los casos anteriores

Relativamente simple, ¿verdad? Desafortunadamente, tenemos que trabajar un poco más para implementar esto en Python. En realidad, hay algunas formas diferentes de implementar una función similar a Switch Case, así que entremos en eso.

Cómo implementar Switch Case usando sentencias If-elif-else

Uno forma es usar declaraciones”if”y”else”para realizar una función específica basada en la entrada. En realidad, esto se puede describir de dos maneras. El primer método se ve así:

color=’Azul’if color==’Rojo’: print(‘el color es rojo’) elif color==’Verde’: print(‘el color es verde’) elif color==’Amarillo’: print(‘el color es amarillo’) elif color==’Azul’: print(‘el color es azul’) else: print(‘El color es indeterminado’)

La entrada, o “color’, se prueba con cada una de estas condiciones para ver cuál coincide. En este caso, el color es claramente azul, por lo que el resultado esperado es”el color es azul”. Y esto es exactamente lo que vemos cuando probamos este código.

El algoritmo de cambio de caso implementado con instrucciones If-elif-else.

©”TNGD”.com

Cómo implementar el cambio de caso usando el mapeo de diccionario

Un diccionario es simplemente un conjunto no estructurado de valores de datos y tiene pares clave:valor. Son similares a los encabezados de una hoja de cálculo, como’Nombre’,’Altura’y’Peso’. Cada clave está emparejada con valores de datos. De esta manera, podemos usar una especie de función de cambio de caso para devolver valores específicos de un diccionario. Esto se ilustra a continuación:

def switch_case(argumento): switcher={“Rojo”:”RED”,”Blue”:”BLUE”,”Green”:”GREEN”} return switcher.get(argumento,”Argumento inválido”) if__name__==”__main__”: argument=”Green”print(switch_case(argument))

En esta situación, estamos definiendo la función “switch_case” como una función que toma el argumento.

El diccionario se define como”conmutador”y contiene pares clave:valor. Las claves representan nombres de colores en mayúsculas, los valores representan nombres de colores en mayúsculas.

El valor que corresponde a la clave del argumento se devuelve del diccionario mediante la función”obtener”. De lo contrario, se devuelve el argumento”argumento no válido”.

Dado que el argumento de entrada era”Verde”, obtenemos’VERDE’como salida.

El”if__name==”__main__ La línea ”” simplemente significa que el código solo se ejecuta cuando se ejecuta el script directamente.

El mapeo de diccionario se usa para implementar switch case.

©”TNGD”.com

Cómo implementar Switch Case usando una clase

La última forma de implementar mayúsculas y minúsculas en Python es usando una clase. Esta es básicamente una plantilla para hacer objetos con atributos y métodos definidos. Por ejemplo, una clase llamada “ID” puede tener dos atributos, “Altura” y “Peso”, y métodos para obtener estos valores, como “obtener_altura()” y “obtener_peso()”. Por ejemplo, podemos definir la clase como”switchcase”e implementar el proceso de la siguiente manera:

class switch_case: def month(self, year): default=”Incorrect month”return getattr(self,’case_’+ str (año), lambda: predeterminado)() def case_1(self): return”2001″def case_2(self): return”2002″def case_3(self): return”2003″my_switch=switch_case() print(my_switch.month (1)) print(my_switch.month(3))

Primero, definimos “switch_case” como una función que implementa switch case.

Después de esto, el método se llama “month()” , que toma el parámetro”año”y llama al método”mes”usando diferentes argumentos,”1″y”3″. Cuando se llama al método con el argumento “1”, corresponde al método de clase “case_1()”, y arroja el resultado “2001”. Cuando se llama al argumento de”3″, el resultado es el valor de cadena”2003″.

Vea la captura de pantalla para ver cómo funciona este código en la práctica.

El cambio de mayúsculas y minúsculas se implementa mediante una clase.

©”TNGD”. com

Conclusión

Aunque el cambio de mayúsculas y minúsculas no se incluye explícitamente en Python, hay varias formas de recrear este proceso. En general, estos incluyen el uso de mapas de diccionario, la implementación de una función de clase o el uso de declaraciones if-elif-else. En todos los casos, el código específico se ejecuta en función del argumento proporcionado y se devuelven valores específicos en función de las sentencias de cambio.

Cómo usar Switch Case en Python Preguntas frecuentes (Preguntas frecuentes) 

¿Qué lenguajes de programación son compatibles con declaraciones de cambio de caso?

Hay muchos lenguajes de programación que admiten declaraciones de cambio de caso, como C, C++, Java, JavaScript, Ruby, Swift y Pitón. Sin embargo, Python no tiene una función de cambio de caso explícita, pero la función se puede implementar con los diversos métodos que se describen aquí.

¿Son las declaraciones de cambio de caso más eficientes que las declaraciones if-else?

No siempre. La eficiencia de una declaración de cambio de caso depende de la cantidad de casos y de cómo se implementa el código. Si solo hay unos pocos valores posibles para una expresión dada, las declaraciones if-else pueden ser más eficientes.

¿Qué sucede si el valor no se puede hacer coincidir con ninguno de los casos?

Se ejecuta un bloque de código predeterminado si ninguno de los casos coincide con el valor en cuestión.

¿Qué expresiones puede usar en una declaración de cambio de caso?

Depende del lenguaje de programación que esté usando, pero ciertamente es posible usar expresiones de otros tipos que no sean números enteros o valores de cadena, como caracteres o enumeraciones.

¿Puede usar varios casos para el mismo código?

En la mayoría de los casos, sí. Esto puede ser útil cuando desee utilizar el mismo código para varios valores de una expresión.

By Henry Taylor

Trabajo como desarrollador back-end. Algunos me habréis visto en la conferencia de desarrolladores. Últimamente he estado trabajando en un proyecto de código abierto.