• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Encuestas: Tamaño de Muestra
    • Lotería: Probabilidad de Ganar
    • Reparto de Escaños (D’Hondt)
    • Tres en Raya con IA
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • R
  • Excel

Novedades en Python 3.10: Switch-Case

marzo 23, 2021 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 2 minutos

Noticias

Una de las características que personalmente más echo en falta al trabajar con Python es la falta de una estructura de control de flujo tipo Switch-Case. Algo que se solucionará con la salida de la versión 3.10 en octubre de 2021. La nueva versión de Python, entre otras mejoras, traerá una sintaxis tipo Switch-Case con la que se podría implementar de forma óptima estas estructuras de datos.

La nueva sintaxis match de Python 3.10

A partir del lanzamiento de la versión 3.10 de Python se podrá implementar un control de flujo tipo Switch-Case mediante la siguiente sintaxis:

match subject:
    case <pattern_1>:
        <action_1>
    case <pattern_2>:
        <action_2>
    case <pattern_3>:
        <action_3>
    case _:
        <action_wildcard>

En la que se utiliza la palabra clave match seguido del valor que empleado para seleccionar la acción a llevar a cabo. Posteriormente se pueden agregar tantas sentencias case como opciones tengamos en nuestro código. Bajo las que se encuentran las acciones a llevar a cabo.

Al llegar a esta estructura de control de flujo se evaluará sin el valor indicado en subject coincide con el indicado en la primera sentencia case. En caso de ser iguales se ejecutará esta y se saldrá de la estructura. Esto es, no sé ejecutarán ninguna otra acción. Por otro lado, en caso de no ser iguales se evaluará el siguiente case hasta llegar a una que coincida o llegar a una con el comodín _.

La Paradoja del Cumpleaños, o por qué no es tan raro compartir fecha de nacimiento
En Analytics Lane
La Paradoja del Cumpleaños, o por qué no es tan raro compartir fecha de nacimiento

Publicidad


Combinación de múltiples opciones

En el caso de que una acción se deba ejecutar para más de un valor no es necesario repetir varios case, ya que se puede usar el operador | para indicar más de una opción.

case 401 | 403 | 404:
    return "Not allowed"

Uso de variables en match

Otra opción interesante que se puede ver en la documentación de la estructura es la posibilidad de crear variables. Ya que es posible comprobar el único valor de una tupla y cargar el otro en una variable. La cual estará disponible a la hora de escribir nuestra función. Algo que se puede ver en el siguiente ejemplo incluido en la documentación.

match point:
    case (0, 0):
        print("Origin")
    case (0, y):
        print(f"Y={y}")
    case (x, 0):
        print(f"X={x}")
    case (x, y):
        print(f"X={x}, Y={y}")
    case _:
        raise ValueError("Not a point")

En este ejemplo, si los dos valores de la tupla son cero se imprimirá por pantalla la palabra Origin. Ahora bien, en el caso de que solamente sea cero el primer valor se imprimirá por pantalla un mensaje indicando que Y es una constante. Usando para ello una f-string. Análogamente, en el caso de que solamente sea cero el segundo se indicará que X es una constante. En el último caso, si ningún valor de la tupla es cero se imprimirá la ecuación correspondiente. Finalmente, en el caso de que el dato no sea una tupla se indicará el error.

Imagen de Michael Gaida en Pixabay

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 5 / 5. Votos emitidos: 2

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicidad


Publicaciones relacionadas

  • Curiosidad: ¿Por qué los datos “raros” son tan valiosos?

Publicado en: Noticias

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Curiosidad: ¿Por qué los datos “raros” son tan valiosos?

noviembre 6, 2025 Por Daniel Rodríguez

Cómo generar contraseñas seguras con Python (y entender su nivel de seguridad)

noviembre 4, 2025 Por Daniel Rodríguez

Cómo ejecutar JavaScript desde Python: Guía práctica con js2py

octubre 30, 2025 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas publicado el mayo 10, 2019 | en Python
  • Curiosidad: ¿Por qué los datos “raros” son tan valiosos? publicado el noviembre 6, 2025 | en Ciencia de datos, Opinión
  • Redondear la hora en Python para agrupar datos publicado el octubre 26, 2020 | en Python
  • Diferencia entre R2 y R2 ajustado en modelos de regresión publicado el marzo 8, 2024 | en Ciencia de datos
  • Método del codo (Elbow method) para seleccionar el número óptimo de clústeres en K-means publicado el junio 9, 2023 | en Ciencia de datos

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.5 (10)

Diferencias entre var y let en JavaScript

Publicidad

Comentarios recientes

  • Daniel Rodríguez en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Pepe en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • CARLOS ARETURO BELLO CACERES en Justicio: La herramienta gratuita de IA para consultas legales
  • Piera en Ecuaciones multilínea en Markdown
  • Daniel Rodríguez en Tutorial de Mypy para Principiantes

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2025 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto