
Lo Zen di Python è una raccolta di 19 "principi guida" per la scrittura di programmi per computer che influenzano la progettazione del linguaggio di programmazione Python. Il codice Python che si allinea con questi principi è spesso definito "Pythonic" - "Pythonico".
L'ingegnere informatico Tim Peters scrisse questi principi e li pubblicò sulla mailing list di Python nel 1999. Peters lasciò incompleto un ventesimo principio "da far compilare a Guido", riferendosi a Guido van Rossum, l'autore originale del linguaggio Python. Il posto vacante per un ventesimo principio non è stato colmato.
Lo Zen di Python di Peters è stato incluso come proposta ufficiale di miglioramento di Python numero 20 del linguaggio ed è stato rilasciato in pubblico dominio. È anche incluso come un Easter egg nell'interprete di Python, dove può essere visualizzato inserendo import this.
Nel maggio 2020, Barry Warsaw (sviluppatore di GNU Mailman) lo ha utilizzato come testo di una canzone.
I principi sono elencati come segue:
Uno dei principi, "Dovrebbe esserci un modo ovvio, e preferibilmente uno solo, per farlo", può essere definito il modo "Pythonico". La definizione ufficiale di "Pythonico" è:
for. Molti altri linguaggi non hanno questo tipo di costrutto, quindi le persone che non hanno familiarità con Python a volte usano un contatore numerico:for i in range(len(food)):
print(food[i])
for piece in food:
print(piece)
Il codice che è difficile da comprendere o che si legge come una trascrizione approssimativa da un altro linguaggio di programmazione è detto non Pythonico .
Sin dal rilascio dello Zen di Python, sono state condotte ricerche sulla sua efficacia e sul suo utilizzo effettivo da parte degli sviluppatori. Nonostante le differenti di interpretazione tra programmatori principianti ed esperti, le interviste a 13 programmatori in Python con livelli di competenza diversi hanno mostrato che lo Zen di Python "influenza positivamente il modo in cui gli sviluppatori scrivono e parlano di codice". I ricercatori hanno esteso questo caso di studio per esplorare l'uso degli idiomi Python sui repository GitHub e hanno scoperto che l'uso di "idiomi Pythonici" è aumentato nel tempo. Scrivere codice Python in linea con lo Zen di Python può far risparmiare memoria e tempo di esecuzione. Il desiderio di scrivere codice Pythonico ha portato alla creazione di strumenti di refactoring per aiutare i programmatori a raggiungere questo obiettivo.