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.

O engenheiro de software Tim Peters escreveu esse conjunto de princípios e o publicou na lista de discussão de Python em 1999. 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.

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. Ele também está incluído como um easter egg no interpretador Python, que pode ser exibido digitando: >>> import this

Princípios 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" 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". A definição oficial de "Pythonico" é:

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:

for i in range(len(food)): print(food[i]) Em contraste com o método mais limpo e "pythonico": for piece in food: print(piece)

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.

Na prática 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". 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. 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. O desejo de escrever código "pythonico" ocasionou no desenvolvimento de ferramentas de refatoração para ajudar os desenvolvedores a alcançar esse objetivo.

Ver também Convenção sobre configuração Python

Categoria:Python