Quire
Redirected from Zen of Python

O Zen de Python (em inglês: Zen of Python) é uma coleção de 19 princípios orientadores, na forma de poema, com uma série de aforismos, para escrever programas de computador que influenciam o design da linguagem de programação Python.[1]

O engenheiro de software Tim Peters escreveu esse conjunto de princípios e o publicou na lista de discussão de Python em 1999.[2] A lista de Peters deixou em aberto o vigésimo princípio "para Guido preencher", referindo-se a Guido van Rossum, o autor original da linguagem Python. A vaga para o vigésimo princípio, todavia, não foi preenchida.[3]

O Zen de Python de Peters foi incluído como entrada número 20 nas propostas oficiais de aprimoramento de Python (PEP), lançadas em domínio público.[4] Ele também está incluído como um easter egg no interpretador Python, que pode ser exibido digitando:

>>> import this

Princípios#edit

Os princípios que constam no Zen of Python são (originalmente em Inglês):

  • Beautiful is better than ugly.
  • Explicit is better than implicit.
  • Simple is better than complex.
  • Complex is better than complicated.
  • Flat is better than nested.
  • Sparse is better than dense.
  • Readability counts.
  • Special cases aren't special enough to break the rules.
  • Although practicality beats purity.
  • Errors should never pass silently.
  • Unless explicitly silenced.
  • In the face of ambiguity, refuse the temptation to guess.
  • There should be one—and preferably only one—obvious way to do it.
  • Although that way may not be obvious at first unless you're Dutch.
  • Now is better than never.
  • Although never is often better than *right* now.
  • If the implementation is hard to explain, it's a bad idea.
  • If the implementation is easy to explain, it may be a good idea.
  • Namespaces are one honking great idea—let's do more of those!

A versão em Português seria a seguinte:

  • Bonito é melhor que feio.
  • Explícito é melhor que implícito.
  • Simples é melhor que complexo.
  • Complexo é melhor que complicado.
  • Linear é melhor do que aninhado.
  • Espaçoso é melhor que denso.
  • Legibilidade conta.
  • Casos especiais não são especiais o bastante para quebrar as regras.
  • Ainda que praticidade vença a pureza.
  • Erros nunca devem passar silenciosamente.
  • A menos que sejam explicitamente silenciados.
  • Diante da ambiguidade, recuse a tentação de adivinhar.
  • Dever haver um — e preferencialmente apenas um — modo óbvio para fazer algo.
  • Embora esse modo possa não ser óbvio a princípio a menos que você seja holandês.
  • Agora é melhor que nunca.
  • Apesar de que nunca normalmente é melhor do que *exatamente* agora
  • Se a implementação é difícil de explicar, é uma má ideia
  • Se a implementação é fácil de explicar, pode ser uma boa ideia
  • Namespaces são uma grande ideia — vamos ter mais dessas!

Sendo "Pythonico"#edit

Um dos princípios, "Deve haver uma - e de preferência apenas uma - maneira óbvia de fazer isso", pode ser referenciado como o jeito "Pythonico". [5] A definição oficial de "Pythonico" é: [6]

Uma ideia ou trecho de código que segue de perto os padrões mais comuns da linguagem Python, em vez de implementar código usando conceitos comuns a outras linguagens. Por exemplo, uma prática comum em Python é percorrer todos os elementos de um elemento iterável usando uma instrução for. Muitas outras linguagens não possuem esse tipo de construção, então pessoas não familiarizadas com Python às vezes usam um contador numérico em vez disso:

Em contraste com o método mais limpo e "pythonico":

Códigos que são difíceis de entender ou que se leem como uma transcrição grosseira de outra linguagem de programação é chamado de não-pythonico.[7]

Na prática#edit

Desde o lançamento do Zen do Python, têm sido feit pesquisas sobre sua eficácia e uso prático entre programadores. Apesar da diferença de interpretação entre juniores e programadores Python experientes, entrevistas realizadas com 13 programadores Python de diferentes níveis de habilidade mostram que o Zen do Python "influencia positivamente o jeito como os desenvolvedores escrevem e falam sobre código". [8] Os pesquisadores expandiram este estudo de caso para explorar o uso de expressões idiomáticas do Python em repositórios do GitHub e descobriram que o uso de "expressões pythonicas" aumentou ao longo do tempo. [9] Escrever códigos em Python que estejam alinhados com o Zen do Python pode economizar memória e tempo de execução de programas Python. [10] O desejo de escrever código "pythonico" ocasionou no desenvolvimento de ferramentas de refatoração para ajudar os desenvolvedores a alcançar esse objetivo. [11] [12]

Ver também#edit

Referências#edit

  1. ^ «Code Style — The Hitchhiker's Guide to Python». docs.python-guide.org. Consultado em 8 de junho de 2020. Cópia arquivada em 4 de agosto de 2026
  2. ^ Peters, Tim. «"The Python Way"». Fri Jun 4 01:15:13 EDT 1999. Consultado em 8 de junho de 2020. Cópia arquivada em 13 de novembro de 2025
  3. ^ Cory Althoff (2017). The Self-Taught Programmer: The Definitive Guide to Programming Professionally. [S.l.]: ‎ Self-Taught Media. ISBN 0999685902
  4. ^ «PEP 20 -- The Zen of Python». Python.org (em inglês). Consultado em 8 de junho de 2020. Cópia arquivada em 27 de fevereiro de 2022
  5. ^ Alexandru, Carol V.; Merchante, José J.; Panichella, Sebastiano; Proksch, Sebastian; Gall, Harald C.; Robles (24 de outubro de 2018). «On the usage of pythonic idioms» (PDF). Proceedings of the 2018 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (PDF). Col: Onward! 2018. New York, NY, USA: Association for Computing Machinery. pp. 1–11. ISBN 978-1-4503-6031-9. OCLC 1362712424. doi:10.1145/3276954.3276960. Consultado em 19 de fevereiro de 2024. Arquivado do original em 24 de março de 2024
  6. ^ «Glossary». Python Documentation (em inglês). Consultado em 7 de fevereiro de 2024. Cópia arquivada em 5 de agosto de 2026
  7. ^ «Code Style – The Hitchhiker's Guide to Python». docs.python-guide.org. Consultado em 20 de janeiro de 2021. Arquivado do original em 27 de janeiro de 2021
  8. ^ Alexandru, Carol V.; Merchante, José J.; Panichella, Sebastiano; Proksch, Sebastian; Gall, Harald C.; Robles (24 de outubro de 2018). «On the usage of pythonic idioms» (PDF). Proceedings of the 2018 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (PDF). Col: Onward! 2018. New York, NY, USA: Association for Computing Machinery. pp. 1–11. ISBN 978-1-4503-6031-9. OCLC 1362712424. doi:10.1145/3276954.3276960. Consultado em 19 de fevereiro de 2024. Arquivado do original em 24 de março de 2024
  9. ^ Farooq, Aamir; Zaytsev, Vadim (22 de novembro de 2021). «There is more than one way to zen your Python». Proceedings of the 14th ACM SIGPLAN International Conference on Software Language Engineering. Col: SLE 2021. New York, NY, USA: Association for Computing Machinery. pp. 68–82. ISBN 978-1-4503-9111-5. doi:10.1145/3486608.3486909
  10. ^ Leelaprute, Pattara; Chinthanet, Bodin; Wattanakriengkrai, Supatsara; Kula, Raula Gaikovina; Jaisri, Pongchai; Ishio (20 de outubro de 2022). «Does coding in Pythonic zen peak performance?: Preliminary experiments of nine Pythonic idioms at scale». Proceedings of the 30th IEEE/ACM International Conference on Program Comprehension. Col: ICPC '22. New York, NY, USA: Association for Computing Machinery. pp. 575–579. ISBN 978-1-4503-9298-3. doi:10.1145/3524610.3527879
  11. ^ Zhang, Zejun; Xing, Zhenchang; Xia, Xin; Xu, Xiwei; Zhu, Liming (12 de julho de 2022), Making Python Code Idiomatic by Automatic Refactoring Non-Idiomatic Python Code with Pythonic Idioms, arXiv:2207.05613
  12. ^ Phan-udom, Purit; Wattanakul, Naruedon; Sakulniwat, Tattiya; Ragkhitwetsagul, Chaiyong; Sunetnanta, Thanwadee; Choetkiertikul, Morakot; Kula, Raula Gaikovina (5 de setembro de 2020), Teddy: Automatic Recommendation of Pythonic Idiom Usage For Pull-Based Software Projects, arXiv:2009.03302

This article is mirrored from “Zen de Python” on Português Wikipedia, revision 72891525, written by Wikipedia's contributors and licensed CC BY-SA 4.0. Editing it here creates a Quire copy with its own history.

Synced with Wikipedia revision 72891525 · just now