Python Switch Statement – Ejemplo de Switch Case

Estimated read time 4 min read

Hasta la versión 3.10, Python nunca tuvo una característica que implementara lo que la sentencia switch hace en otros lenguajes de programación.

Así que, si querías ejecutar múltiples sentencias condicionales, tenías que usar la palabra clave elif de esta manera:

age = 120

if age > 90:
    print("You are too old to party, granny.")
elif age < 0:
    print("You're yet to be born")
elif age >= 18:
    print("You are allowed to party")
else: 
    "You're too young to party"

# Output: You are too old to party, granny.

A partir de la versión 3.10, Python ha implementado una función de cambio de mayúsculas y minúsculas llamada «concordancia estructural de patrones». Puedes implementar esta característica con las palabras clave match y case.

Algunas personas debaten si match y case son o no palabras clave en Python. Esto se debe a que puedes usar ambas como nombres de variables y funciones. Pero esa es otra historia para otro día.

Si quieres, puedes referirte a ambas palabras clave como «palabras clave blandas».

En este artículo, te mostraré cómo escribir una sentencia switch en Python usando las palabras clave match y case.

Pero antes de eso, tengo que mostrarte cómo los programadores de Python solían simular una sentencia switch.

Cómo solían simular los programadores de Python los casos switch

Había muchas formas en que los Pythonistas simulaban las sentencias switch.

Usar una función y la palabra clave elif era una de ellas y puedes hacerlo de esta manera:

def switch(lang):
    if lang == "JavaScript":
        return "You can become a web developer."
    elif lang == "PHP":
        return "You can become a backend developer."
    elif lang == "Python":
        return "You can become a Data Scientist"
    elif lang == "Solidity":
        return "You can become a Blockchain developer."
    elif lang == "Java":
        return "You can become a mobile app developer"

print(switch("JavaScript"))   
print(switch("PHP"))   
print(switch("Java"))  

"""
Output: 
You can become a web developer.
You can become a backend developer.
You can become a mobile app developer
"""

Cómo Implementar Sentencias Switch con las Palabras Clave match y case en Python 3.10

Para escribir sentencias switch con la función de concordancia de patrones estructurales, puede utilizar la sintaxis siguiente:

match term:
    case pattern-1:
         action-1
    case pattern-2:
         action-2
    case pattern-3:
         action-3
    case _:
        action-default

Tenga en cuenta que el símbolo de subrayado es lo que se utiliza para definir un caso por defecto para la sentencia switch en Python.

A continuación se muestra un ejemplo de una sentencia switch escrita con la sintaxis match case. Es un programa que imprime lo que puedes llegar a ser cuando aprendes varios lenguajes de programación:

lang = input("What's the programming language you want to learn? ")

match lang:
    case "JavaScript":
        print("You can become a web developer.")

    case "Python":
        print("You can become a Data Scientist")

    case "PHP":
        print("You can become a backend developer")
    
    case "Solidity":
        print("You can become a Blockchain developer")

    case "Java":
        print("You can become a mobile app developer")
    case _:
        print("The language doesn't matter, what matters is solving problems.")

Es una sintaxis mucho más limpia que múltiples sentencias elif y simular la sentencia switch con una función.

Probablemente notaste que no agregué una palabra clave break a cada uno de los casos, como se hace en otros lenguajes de programación. Esa es la ventaja que tiene la sentencia switch nativa de Python sobre las de otros lenguajes. La funcionalidad de la palabra clave break se hace por ti entre bastidores.

Conclusión

Este artículo te mostró cómo escribir sentencias switch con las palabras clave «match» y «case». También aprendió cómo solían escribirlas los programadores de Python antes de la versión 3.10.

Las sentencias match y case de Python fueron implementadas para proporcionar la funcionalidad que nos dan las sentencias switch en otros lenguajes de programación como JavaScript, PHP, C++ y otros.

Gracias por leer.

También le puede gustar

Más del autor

+ There are no comments

Add yours