Introducción a la declaración de cambio de Python

Una declaración de cambio es una característica de programación muy útil y poderosa. Es una alternativa a la declaración de escalera if-else-if y proporciona un mejor rendimiento y un código más manejable que una declaración de escalera if-else-if. La mayoría de los lenguajes de programación (como Java, C, etc.) ofrecen declaraciones de cambio, pero el lenguaje Python no tiene ninguna declaración de cambio. Sin embargo, si desea cambiar las declaraciones de mayúsculas y minúsculas, hay una forma muy eficiente de implementar una función de declaración de mayúsculas y minúsculas en Python. Este tutorial lo ayudará a implementarlo.

Diagrama de flujo

La instrucción switch en cada lenguaje de programación tiene la misma funcionalidad pero una sintaxis ligeramente diferente. El lenguaje Python no proporciona ninguna declaración de interruptor incorporada. Podemos implementar esta característica con el mismo flujo y funcionalidad pero con diferente sintaxis e implementación usando Python Dictionary.

Sintaxis de la declaración de cambio

Solo mira las dos sintaxis diferentes de la instrucción switch. La primera instrucción muestra la sintaxis estándar de las instrucciones de cambio en otros lenguajes de programación como C, Java, etc. La segunda declaración es la implementación de Python de la declaración de cambio. Puede relatar claramente cómo ambos son similares en funcionalidad pero diferentes en implementación.

1. Cambiar en otros idiomas (c, Java, ..)

Sintaxis:

switch(N)
(
case 1: Statement if N = 1;
break;
case 2: Statement if N = 2;
break;
::
case n: Statement if N = n;
break;
default: Statement if N doesn't match any
)

2. Implementación de conmutadores en Python

Sintaxis:

switcher=
(
key_1: value_1/method_1(),
key_2: value_2/method_2(),
key_3: value_3/method_3(),
::
key_n: value_n/method_n(),
)
key = N
value = switcher.get(key, "default")

Funcionamiento de la declaración de cambio

  • El funcionamiento de la instrucción de cambio estándar en cualquier lenguaje de programación es similar. Consiste en múltiples casos, cada uno con un bloque de código y una declaración de interrupción.
  • El argumento de entrada se compara con múltiples casos uno tras otro. Si el argumento coincide con alguno de los casos, se ejecuta la instrucción de bloque correspondiente y el control sale de la instrucción de cambio en la instrucción de interrupción.
  • Si ninguno de los casos coincide con el argumento de entrada, se ejecuta la instrucción de bloque predeterminada.
  • En la implementación de Python de sentencias de switch, consideramos que el diccionario de Python es el switch y las claves del diccionario como casos. Aquí llamamos a la función get () del diccionario con argumentos requeridos, es decir, clave de entrada y un valor predeterminado.
  • Si la clave de entrada coincide con alguna de las claves del diccionario, se devuelve el valor correspondiente. Sin embargo, si la clave de entrada no coincide con ninguna de las claves del diccionario, se devolverá el valor predeterminado.

Implementación de la instrucción Switch en Python

Como sabemos, la declaración de cambio de caso y la declaración de escalera if-else-if son alternativas entre sí. Ambos se pueden usar para lograr el mismo propósito, pero una declaración de cambio de caso proporciona un mejor rendimiento y un código más manejable que una declaración de escalera if-else-if. El lenguaje Python no tiene ninguna declaración de cambio, pero podemos implementar una funcionalidad similar usando el Diccionario Python.

En la siguiente sección, veremos la implementación de cada uno con un ejemplo.

Ejemplo 1

Uso de la escalera if-else-if: una alternativa para cambiar la declaración del caso. En este ejemplo, hemos utilizado la instrucción de escalera if-else-if para obtener el día de la semana. Para el mismo caso de uso, también veremos la implementación del estado del interruptor en Python.

Código:

def get_week_day(argument):
if(argument == 0):
day="Sunday"
elif(argument == 1):
day="Monday"
elif(argument == 2):
day="Tuesday"
elif(argument == 3):
day="Wednesday"
elif(argument == 4):
day="Thursday"
elif(argument == 5):
day="Friday"
elif(argument == 6):
day="Saturday"
else:
day="Invalid day"
return day
# Driver program
if __name__ == "__main__":
print (get_week_day(6))
print (get_week_day(8))
print (get_week_day(0))

Salida:

Ejemplo # 2

Implementación de la instrucción switch utilizando Dictionary of Strings. El lenguaje Python no tiene ninguna declaración de cambio. Sin embargo, podemos implementar eficientemente una función de declaración de cambio en Python usando Dictionary como se muestra a continuación.

Explicación: Diccionario en Python hay una colección desordenada de pares clave y valor. En el fragmento de código a continuación, el conmutador es una variable de diccionario que contiene la clave: pares de valores similares a los casos similares a conmutadores.

Usando el método get (), podemos acceder al elemento del diccionario pasando los argumentos como la clave y el valor predeterminado opcional. El valor predeterminado ayuda a implementar el 'caso predeterminado' de una instrucción de cambio.

Código:

def get_week_day(argument):
switcher = (
0: "Sunday",
1: "Monday",
2: "Tuesday",
3: "Wednesday",
4: "Thursday",
5: "Friday",
6: "Saturday"
)
return switcher.get(argument, "Invalid day")
# Driver program
if __name__ == "__main__":
print (get_week_day(6))
print (get_week_day(8))
print (get_week_day(0))

Salida:

En este ejemplo, pasemos 6 como argumento de entrada o clave de entrada que se buscará en las teclas del diccionario (conmutador). Como se encuentra la clave = 6, devolverá el valor como sábado. Ahora pase 8 como clave de entrada que se buscará en las teclas del diccionario (conmutador). Como no se encuentra la clave = 8, devolverá el valor predeterminado como Día inválido.

Ejemplo # 3

Implementación de la declaración de cambio utilizando el mapeo de funciones del diccionario. En el ejemplo anterior, los valores del diccionario son del tipo de datos de cadena, es decir, constantes. Pero es interesante saber que los valores de un diccionario Python pueden ser de cualquier tipo de datos.

Los valores de un diccionario de Python pueden ser constantes (enteros, cadenas) y funciones. En este ejemplo, implementaremos la instrucción switch que también admitirá la llamada de función para cada caso de switch usando el diccionario de funciones como se muestra a continuación.

Código:

def get_week_day(argument):
def zero():
return "Sunday"
def one():
return "Monday"
def two():
return "Tuesday"
def three():
return "Wednesday"
def four():
return "Thursday"
def five():
return "Friday"
def six():
return "Saturday"
switcher = (
0: zero(),
1: one(),
2: two(),
3: three(),
4: four(),
5: five(),
6: six()
)
return switcher.get(argument, "Invalid day")
# Driver program
if __name__ == "__main__":
print (get_week_day(6))
print (get_week_day(8))
print (get_week_day(0))

salida:

Conclusión

Como hemos visto anteriormente, el mismo caso de uso puede ser implementado tanto por la declaración de cambio de caso como por la declaración de escalera if-else-if. Pero la declaración de Switch proporciona un código más manejable y legible que la declaración de escalera if-else-if. También hemos visto que el lenguaje Python no tiene ninguna declaración de cambio, pero podemos implementar lo mismo de una manera más eficiente usando Python Dictionary.

Artículos recomendados

Esta es una guía para la declaración de cambio de Python. Aquí discutimos la sintaxis, el diagrama de flujo y el funcionamiento de la declaración de cambio de Python junto con ejemplos e implementación. También puede consultar los siguientes artículos para obtener más información.

  1. Herencia en Python
  2. Sobrecarga de Python
  3. Diccionario en Python
  4. Diccionario en Python