Articulo de referencia

El zen de Python

El Zen de la salida de Python en una terminal El Zen de Python es una colección de 19 "principios rectores" para escribir programas informáticos que influyen en el diseño del le...

El Zen de la salida de Python en una terminal

El Zen de Python es una colección de 19 "principios rectores" para escribir programas informáticos que influyen en el diseño del lenguaje de programación Python . [ 1 ] El código Python que se ajusta a estos principios se suele denominar "pythónico". [ 2 ]

El ingeniero de software Tim Peters escribió este conjunto de principios y lo publicó en la lista de correo de Python en 1999. [ 3 ] La lista de Peters dejó un vigésimo principio vacante "para que Guido lo completara", en referencia a Guido van Rossum , el autor original del lenguaje Python. El puesto vacante para el vigésimo principio aún no se ha cubierto.

El Zen de Python de Peters se incluyó como entrada número 20 en las Propuestas de Mejora de Python oficiales del lenguaje y se publicó en el dominio público . [ 4 ] También se incluye como un huevo de Pascua en el intérprete de Python , donde se puede mostrar ingresando . [ 1 ] [ 4 ] [ a ]importthis

En mayo de 2020, Barry Warsaw (desarrollador de GNU Mailman ) lo usó como letra de una canción. [ 5 ] [ 6 ]

Principios

Los principios se enumeran a continuación: [ b ]

Ser pitonico

One of the principles, "There should be one-- and preferably only one --obvious way to do it", can be referenced as the "Pythonic" way.[8] The official definition of "Pythonic" is:[2][e]

An idea or piece of code which closely follows the most common idioms of the Python language, rather than implementing code using concepts common to other languages. For example, a common idiom in Python is to loop over all elements of an iterable using a for statement. Many other languages don’t have this type of construct, so people unfamiliar with Python sometimes use a numerical counter instead:

foriinrange(len(food)):print(food[i])

As opposed to the cleaner, Pythonic method:

forpieceinfood:print(piece)

Code that is difficult to understand or reads like a rough transcription from another programming language is called unpythonic.[9]

In practice

Since the release of the Zen of Python, there has been research done on its effectiveness and actual use among developers. Despite the difference in interpretation between beginners and experienced Python programmers, interviews among 13 Python programmers of varying skill show that the Zen of Python "positively influences the way developers write and talk about code".[8] Researchers extended this case study to explore the use of Python idioms on GitHub repositories, and found that the usage of "Pythonic idioms"[f] increased over time.[10] Writing Python code that aligns with the Zen of Python may save memory and run time of Python programs.[11] The desire to write in Pythonic code has led to refactoring tools to help programmers achieve this goal.[12][13]

See also

Notes

  1. The source code for the Zen of Python can be found on Github.
  2. Wikipedia links below are added for further reference and understanding, and were not explicitly linked in the Zen of Python
  3. El formato de los guiones en esta línea y en la última es deliberadamente inconsistente, en referencia a las diferentes convenciones de formato. [ 7 ]
  4. En el huevo de Pascua del intérprete, esto se escribe como "Aunque nunca suele ser mejor que *ahora*". Esto sigue una convención de larga data en la comunicación de texto plano , en la que las funciones de formato comunes suelen ser imposibles, donde el énfasis se representa con asteriscos.
  5. La siguiente definición se cita directamente para preservar su significado. Por lo tanto, tal como está, no constituye un código Python válido y autocontenido que se pueda ejecutar sin errores.
  6. Aquí puedes encontrar una lista de sus modismos de Python : https://slimshadyiam.github.io/ZenYourPython/

Referencias

  1. 1 2 Reitz, Kenneth (2011–2019). "Estilo de código" . La guía del autoestopista para Python . § Zen de Python . Recuperado el 26 de marzo de 2019 .
  2. 1 2 "Glosario" . Documentación de Python . Consultado el 7 de febrero de 2024 .
  3. Peters, Tim (4 de junio de 1999). "The Python Way" . Python Software Foundation . Consultado el 26 de marzo de 2019 .
  4. 1 2 Peters, Tim (19 de agosto de 2004). "PEP 20: El Zen de Python" . Python Software Foundation . Recuperado el 26 de marzo de 2019 .
  5. Varsovia, Barry (10 de mayo de 2020). "El zen de Python" . We Fear Change . Archivado del original el 3 de junio de 2020.
  6. Varsovia, Barry (23 de mayo de 2020). El Zen de Python . YouTube . The Zbwedicon. Archivado del original el 11 de diciembre de 2021.Archivado el 3 de junio de 2020 en Wayback Machine.
  7. "Problema 3364: Un error ortográfico en el texto de Zen of Python - Rastreador de Python" . bugs.python.org .
  8. 1 2 Alexandru, Carol V.; Merchante, José J.; Panichella, Sebastiano; Proksch, Sebastian; Gall, Harald C.; Robles, Gregorio (24 de octubre de 2018). "Sobre el uso de modismos pythónicos" (PDF) . Actas del Simposio Internacional ACM SIGPLAN 2018 sobre Nuevas Ideas, Nuevos Paradigmas y Reflexiones sobre Programación y Software (PDF) . ¡Adelante! 2018. Nueva York, NY, EE. UU.: Association for Computing Machinery. págs. 1–11 . doi : 10.1145/3276954.3276960 . ISBN  978-1-4503-6031-9. OCLC 1362712424 . S2CID 53057358 . Archivado del original el 24-03-2024 . Recuperado el 19-02-2024 .  {{cite book}}: CS1 maint: bot: estado de la URL original desconocido ( enlace )
  9. "Estilo de código: la guía del autoestopista para Python" . docs.python-guide.org . Archivado del original el 27 de enero de 2021. Consultado el 20 de enero de 2021 .
  10. Farooq, Aamir; Zaytsev, Vadim (22 de noviembre de 2021). "Hay más de una forma de aplicar la filosofía zen a Python" . Actas de la 14.ª Conferencia Internacional ACM SIGPLAN sobre Ingeniería de Lenguajes de Software . SLE 2021. Nueva York, NY, EE. UU.: Association for Computing Machinery. págs. 68–82 . doi : 10.1145/3486608.3486909 . ISBN  978-1-4503-9111-5.
  11. Leelaprute, Pattara; Chinthanet, Bodin; Wattanakriengkrai, Supatsara; Kula, Raula Gaikovina; Jaisri, Pongchai; Ishio, Takashi (2022-10-20). "¿Alcanza el máximo rendimiento la programación en Python zen?: Experimentos preliminares de nueve modismos de Python a gran escala" . Actas de la 30.ª Conferencia Internacional IEEE/ACM sobre Comprensión de Programas . ICPC '22. Nueva York, NY, EE. UU.: Association for Computing Machinery. págs. 575–579 . doi : 10.1145/3524610.3527879 . ISBN  978-1-4503-9298-3.
  12. ^ Zhang, Zejun; Xing, Zhenchang; Xia, Xin; Xu, Xiwei; Zhu, Liming (12 de julio de 2022), Hacer que el código Python sea idiomático mediante la refactorización automática de código Python no idiomático con modismos pitónicos , arXiv : 2207.05613
  13. ^ Phan-udom, Purit; Wattanakul, Naruedon; Sakulniwat, Tattiya; Ragkhitwetsagul, Chaiyong; Sunetnanta, Thanwadee; Choetkiertikul, Morakot; Kula, Raula Gaikovina (5 de septiembre de 2020), Teddy: Recomendación automática del uso del lenguaje pitónico para proyectos de software basados ​​en extracción , arXiv : 2009.03302
  • PEP20 en el sitio web de Python
  • PEP 20 ~ El zen de Python por Tim Peters