python

Sentencia switch en Python

No existe la sentencia switch en Python, pero existen equivalentes dependiendo de lo que se desee alcanzar. El uso más conocido de switch es evaluar un valor y evitar anidar múltiples sentencias if.

Alternativas y equivalentes a switch en PythonAlternativas y equivalentes a switch en Python
Alternativas y equivalentes a switch en Python

Aquí se explica justamente eso: cómo hacer un equivalente a switch en Python.

Cuando se desea evaluar una sentencia con múltiples condiciones

Se puede observar el caso más común cuando se desea comparar el valor de un elemento con múltiples condiciones. Por ejemplo, dar a elegir al usuario cuál opción desea, y evaluar dependiendo de ello (esto fue aplicado en el ejemplo de Python con MongoDB):

menu = """Bienvenido a la tienda.
1 - Insertar producto
2 - Ver todos
3 - Actualizar
4 - Eliminar
5 - Salir
"""
eleccion = int(input("Elige"))
switch eleccion:
 case 1:
  print("Insertar")
  break
 case 2:
  print("Ver")
  break;

Ese es un switch en un universo en donde Python lo incorpora, sin embargo, en la actualidad no existe. Por lo tanto, el código debe quedar de la siguiente manera:

menu = """Bienvenido a la tienda.
1 - Insertar producto
2 - Ver todos
3 - Actualizar
4 - Eliminar
5 - Salir
"""
print(menu)
eleccion = int(input("Elige: "))
if eleccion is 1:
 print("Insertar")
elif eleccion is 2:
 print("Ver")
elif eleccion is 3:
 print("Actualizar")
elif eleccion is 4:
 print("Eliminar")
elif eleccion is 5:
 print("Salir")
else:
 #Equivalente a 'default'
 print("Ninguna opción válida seleccionada")

Tal vez al principio es un poco engorroso, pero el equivalente a switch en Python son muchas sentencias if, con elif (que significa else if) y else, el cual es el caso default.

En caso de obtener un valor

Otro uso de switch en Python es cuando se quiere obtener un valor de una función a partir de un argumento que puede tener múltiples valores. Por ejemplo, obtener el nombre del día a partir de su número; tomando el domingo como 0, el lunes como 1 y finalmente el sábado como 6.

Para esto, lo primero que se piensa es en escribir una función de la siguiente manera:

def obtener_nombre_dia(numero_dia):
 if numero_dia is 0:
  return "Domingo"
 elif numero_dia is 1:
  return "Lunes"
 #Aquí más casos hasta el sábado...
 else:
  return "Desconocido"

Está bien, y usa el equivalente al switch en Python, pero puede ser escrita de mejor manera:

def obtener_nombre_dia(numero_dia):
 dias = {
  0: "Domingo",
  1: "Lunes",
  #Aquí los demás días...
 }
 return dias.get(numero_dia, "Desconocido")

De esta manera se usa un diccionario y a su método get, el cual recibe la clave del valor que se desea obtener (algo así como el índice) y el valor por defecto en caso de que la clave no exista.

Conclusión

En conclusión no hay sentencia switch en Python, pero existen equivalentes para todos los casos. De hecho, se podría decir que switch es azúcar sintáctica para los if.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Resetear GOOJPRT PT-210 MTP-II (Impresora térmica)

El día de hoy vamos a ver cómo restablecer la impresora térmica GOOJPRT PT-210 a…

2 semanas hace

Proxy Android para impresora térmica ESC POS

Hoy voy a enseñarte cómo imprimir en una impresora térmica conectada por USB a una…

2 semanas hace

Android – Servidor web con servicio en segundo plano

En este post voy a enseñarte a programar un servidor web en Android asegurándonos de…

2 semanas hace

Cancelar trabajo de impresión con C++

En este post te quiero compartir un código de C++ para listar y cancelar trabajos…

1 mes hace

Copiar bytes de Golang a JavaScript con WebAssembly

Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…

2 meses hace

Imprimir PDF con Ghostscript en Windows de manera programada

Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…

2 meses hace