Python 3.10, ¿entiendes la sintaxis del interruptor?

Python es el lenguaje de programación elegido por las personas que trabajan en ciencia de datos e inteligencia artificial. Según una encuesta reciente, el 27 % de los trabajos de desarrollo de programadores requieren conocimientos del lenguaje Python, frente al 18,5 % a principios de este año.

Lo que hace que Python sea popular es su capacidad de ser muy intuitivo: el lenguaje tiene una gran cantidad de bibliotecas, es lo suficientemente productivo y es relativamente fácil de aprender. En octubre de 2020, se lanzó oficialmente la versión 3.9 de Python, desde actualizaciones/fusión de diccionarios hasta la adición de nuevos métodos de cadena, hasta la introducción de la biblioteca zoneinfo, Python 3.9 agregó muchas características nuevas.

La segunda versión alfa de Python 3.10 también se lanzó a principios de noviembre de 2020. En comparación con la versión 3.9 lanzada no hace mucho tiempo, la nueva versión tiene nuevas mejoras para escribir extensiones de anotación, zip, recuento de bits y asignación de diccionario. Se lanza la versión beta de Python 3.10, y lo más destacado de la nueva versión beta puede ser la introducción de la declaración de cambio de caso.

Nuevas mejoras en Python 3.10 beta

La instrucción Switch existe en muchos lenguajes de programación, pero el lenguaje de programación Python no es compatible con la instrucción Switch. En 2016, se propuso PEP 3103, lo que sugería que Python admitía declaraciones de cambio de mayúsculas y minúsculas. Sin embargo, una encuesta encontró muy poco soporte para la función y los desarrolladores de Python la abandonaron.

El tiempo se aplaza hasta 2020. Guido van Rossum, el fundador de Python, presentó el primer documento que muestra la declaración de cambio, denominada Coincidencia de patrones estructurales, consulte PEP 634.

Ahora, con el lanzamiento de Python 3.10 beta, finalmente se incluyen declaraciones de cambio de caso.

Administradores de contexto entre paréntesis: ahora se admiten paréntesis para continuaciones en varias líneas en un administrador de contexto. También puede usar una coma al final del grupo incluido.

with (
CtxManager1 as example1,
CtxManager2 as example2,
CtxManager3 as example3,
):...

Mensaje de error: NameErrors: al imprimir un NameError generado por el intérprete, PyErr_Display sugerirá nombres de variables similares en la función que generó la excepción:

PEP 634 Coincidencia de patrones estructurales: la coincidencia de patrones permite a los usuarios seguir una coincidencia con varias declaraciones de casos. Cuando se ejecuta un caso de coincidencia en el programa, si hay una declaración coincidente, el programa ingresará la declaración de caso correspondiente para ejecutar la operación.

sintaxis y operaciones de coincidencia de mayúsculas y minúsculas: la sintaxis general para la coincidencia de patrones es:

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

La declaración de coincidencia toma una expresión y compara su valor con un patrón consecutivo dado como uno o más bloques de casos. Un ejemplo de caso de coincidencia es el siguiente:

http_code = "418"
match http_code:case "200":
print("OK")
do_something_goodcase "404":
print("Not Found")
do_something_badcase "418":
print("I'm a teapot")
make_coffeecase _:print("Code not found")

La siguiente figura es un diagrama esquemático de la ejecución de la instrucción match-case. El programa verifica las condiciones de múltiples casos y realiza diferentes acciones según el valor encontrado en la variable http_code.

Del mismo modo, puede construir la misma lógica usando un conjunto de declaraciones if-elif-else:

http_code = "418"
if http_code == "418":
print("OK")
do_something_goodelif http_code == "404":
print("Not Found")
do_something_badelif http_code == "418"
print("I'm a teapot")
make_coffeeelse:print("Code not found")

Sin embargo, al usar la instrucción match-case, se elimina la ejecución repetida de http_code ==, y http_code == se ve mucho más limpio cuando se usa match-case cuando se prueban muchas condiciones diferentes.

Podemos entender la coincidencia de patrones con un ejemplo simple: hacer coincidir objetos (objetos de datos) con texto (patrones) usando declaraciones de cambio en C, Java o JavaScript (y muchos otros lenguajes). Una declaración de cambio se usa a menudo para comparar un objeto/expresión con una declaración de caso que contiene literales.

Si bien se puede usar una serie imperativa de instrucciones que usan sentencias if anidadas para realizar tareas similares a la coincidencia de patrones estructurales, no es tan claro como un enfoque declarativo. Por el contrario, un enfoque declarativo declara las condiciones que deben cumplirse para una coincidencia y es más legible a través de su patrón explícito. Si bien la coincidencia de patrones estructurales se puede usar en su forma más simple, comparando una variable con el texto en una declaración de caso, su valor real para Python radica en su manejo de tipos y tamaños de objetos.

Se puede decir que match-case es lo más destacado de esta versión beta de Python 3.10. A algunas personas les gusta esta expresión y otras la odian. Antes de que Python no sea compatible con el cambio de mayúsculas y minúsculas, todos pueden usar diccionarios para operaciones relacionadas. Algunas personas dicen que switch no tiene más ventajas que ser fácil de leer; algunas personas dicen que el mecanismo de cierre de Python, el valor de dict puede ser una función con un cierre, lo que hace que la capacidad expresiva alcance un nivel más alto que switch-case; pero después de todo, Python 3.10 La versión beta incorpora switch-case, dando a los desarrolladores otra opción.

Aquí me gustaría recomendar el grupo Q de aprendizaje de Python que construí yo mismo: 1020465983. Todos los grupos están aprendiendo Python. Si quieres aprender o estás aprendiendo Python, puedes unirte. bienes de vez en cuando (solo relacionados con el desarrollo de software de Python),
incluida una copia de los últimos materiales avanzados de Python y enseñanza basada en cero en 2021 que he compilado yo mismo. Bienvenidos a los socios medianos y pequeños avanzados que están interesados ​​en Python !

Supongo que te gusta

Origin blog.csdn.net/weixin_56659172/article/details/124165838
Recomendado
Clasificación