Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Yidu en 8 Diciembre 2021, 21:20 pm



Título: ¿Es la forma correcta de usar match...case? [Python 3.10]
Publicado por: Yidu en 8 Diciembre 2021, 21:20 pm
Hola!

Estoy probando el match...case de la nueva versión de python 3.10. Y aunque se comporta según lo esperado (semejante a otros lenguajes), no se si esta sintaxis, en este caso que muestro es demasiado redundante:

Código
  1. numero = 90
  2. match numero:
  3.    case numero if numero > 110:
  4.        print('El numero es mayor')
  5.    case numero if numero < 100:
  6.        print('Es menor')

En este caso el resultado que imprime es "Es menor". Es un ejemplo simple. Y en este caso, supongo, sería mejor usar los IFs de toda la vida. Es decir, sin el match. Me llama la atención que se tenga que indicar tantas veces la variable numero. Es decir, dos veces por cada case. O quizás no lo estoy haciendo correctamente y no se recomienda esta estructura en un código así.

Saludos!


Título: Re: ¿Es la forma correcta de usar match...case? [Python 3.10]
Publicado por: ErahUnderground en 9 Diciembre 2021, 15:37 pm
Hola!

Por lo que yo sé, están implementando el "select case" de otros lenguajes, que al final se creó para realizar una lista de tareas y se adaptó usando en cada case un break para poder seleccionar "casos".

La sintaxis en sí, es redundante, pero porque en tu ejemplo estás seleccionando un intervalo.

Código
  1. option = 3
  2.  
  3. match option:
  4. \tcase 1:
  5. \t\t#code option1
  6. \t\t break
  7. \tcase 2:
  8. \t\t #code option2
  9. \t\ break
  10. \tcase 3:
  11. \t\tprint("Cerrando")
  12. \t\texit(0)
  13.  

No sé si así se entiende mejor :)
PD: No sé meter las tabulaciones jeje

Un saludo!