Simular un Switch en Python 3.6

Bryan Miranda
2 min readOct 9, 2018

--

La sentencia switch es una estructura de control empleada en la mayoría de los lenguajes de programación. Se utiliza cuando se tiene que ejecutar diferentes bloques de código que dependen del valor que puede tomar una variable.

Python no tiene implementado la sentencia switch a diferencia de lenguajes como PHP o Java, seguramente la manera más sencilla que se te ocurrió es usar muchas sentencias if-else, aquí simularé el switch de una manera más elegante desde el punto de vista de la presentación del código.

Como ejemplo implementaré una calculadora básica que realiza las operaciones aritméticas básicas entre dos números, para ello se define cuatro funciones, cada una representará un caso distinto del switch.

def suma(a, b):
return a + b
def resta(a, b):
return a - b
def multiplicacion(a, b):
return a * b
def division(a, b):
if b == 0:
return "Error: Division entre cero..."
else:
return a / b

Nos hace falta definir la opción default que tiene el switch, lo que hace es ejecutar un bloque de código por defecto, es decir, que es diferente a todas las opciones. Para nuestro ejemplo el default mostrará un mensaje.

def default():
return "Opcion Invalida"

Hasta este punto ya tenemos lo necesario para implementar el switch, haremos uso de un diccionario que forma parte del lenguaje, la característica de los diccionarios es almacenar conjuntos de pares de datos clave-valor.

def switch(case, a, b):
sw = {
1: suma(a, b),
2: resta(a, b),
3: multiplicacion(a, b),
4: division(a, b),
}
return sw.get(case, default())

Solo para la presentación añadiremos una función extra que imprimirá un menú con las opciones.

def menu():
print("----------- Calculadora -----------")
print("1. Suma")
print("2. Resta")
print("3. Multiplicacion")
print("4. Division")
print("-----------------------------------")

Finalmente introducimos los valores de a y b, llamamos a la función menu(), seleccionamos una opción del menú y mostramos el resultado.

a = int(input("Valor de a: "))
b = int(input("Valor de b: "))
menu()
case = int(input("Seleccione una opcion: "))
print(switch(case, a, b))

Conclusión

Existen otras alternativas para simular un switch, dependerá de la creatividad del programador como lo implementa.

--

--

Bryan Miranda

💻 Python Developer. 📚 AI and Data Science Researcher