Le sequenti “Uova di Pasqua” sono valide su tutte le versioni di Python.
Quando si apprende un nuovo linguaggio di programmazione di solito si parte sempre con qualcosa di semplice tipo scrivere Hello World!
In Python solitamente scriveremmo qualcosa tipo
>>> print("Hello World!") Hello World!
In pochi sanno che si può ottenere lo stesso risultato in questo modo
>>> import __hello__ Hello World!
E' il programma Hello World! più corto al mondo !!!
Introdotto con la PEP 20 (PEP –> Python Enhancement Proposals o Proposte di miglioramento di Python).
Qui vengono esposti 19 dei 20 aforismi che rispecchiano i principi guida di Python.
E il ventesimo ?
Guido van Rossum, interrogato sulla questione, ha risposto che secondo lui si tratta di “uno scherzo bizzarro di Tim Peters” / di un'opportunità per le persone di fornire la propria aggiunta.
>>> import this
il cui risultato è
The Zen of Python, by Tim Peters 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!
Ricollegandoci al punto precedente possiamo andare a cercare il modulo this.py.
Una voltra trovato sarà possibile apprezzarne la sobrietà, la leggibilità e lo stile che contraddistingue gli sviluppatori di Python.
(Sicuramente un ottimo esempio di ROT13 Encoding)
s = """Gur Mra bs Clguba, ol Gvz Crgref Ornhgvshy vf orggre guna htyl. Rkcyvpvg vf orggre guna vzcyvpvg. Fvzcyr vf orggre guna pbzcyrk. Pbzcyrk vf orggre guna pbzcyvpngrq. Syng vf orggre guna arfgrq. Fcnefr vf orggre guna qrafr. Ernqnovyvgl pbhagf. Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf. Nygubhtu cenpgvpnyvgl orngf chevgl. Reebef fubhyq arire cnff fvyragyl. Hayrff rkcyvpvgyl fvyraprq. Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff. Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg. Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu. Abj vf orggre guna arire. Nygubhtu arire vf bsgra orggre guna *evtug* abj. Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn. Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn. Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!""" d = {} for c in (65, 97): for i in range(26): d[chr(i+c)] = chr((i+13) % 26 + c) print("".join([d.get(c, c) for c in s]))
Probabilmente è uno dei pochie script al mondo che va contro i suoi stessi principi
L'antigravità in una sola linea di codice
>>> import antigravity
Attenzione: presenta effetti collaterali

A differenza di molti altri linguaggi di programmazione, Python non utilizza parentesi le graffe {} durante la scrittura di istruzioni, funzioni e loop.
Ma questa cosa potrebbe cambiare in futuro.
Il modulo __future__ contiene tutte quelle modifiche, “incompatibili” fra versioni di Python, che diventeranno effettive nelle prossime release.
Vediamo come funzioneranno le graffe in futuro
>>> from __future__ import braces SyntaxError: not a chance
L'hash di Infinito e NaN (Not a Number).
>>> hash(float('inf')) 314159 >>> hash(float('nan')) 0
Osservando bene l'hash restituito per infinito si potrà notare che si tratta del valore di π senza “punteggiatura” in quanto il numero di decimali di π è infinito.
Onestamente mi sarei aspettato una risposta molto più simile alla “Risposta alla domanda fondamentale sulla vita, l'universo e tutto quanto”.
Il dibattito sulla scelta di alcuni operatori è diventato più lungo di quello sul numero 42.
Quanto verrà riportato di seguito è descrtitto nella PEP 401.
Barry Warsaw, noto sviluppatore Python conosciuto anche come Zio Berry è stato “scelto” per diventare il “Friendly Language Uncle For Life” il cui acronimo è FLUFL.
Berry, forte di questo titolo ha proposto di rimpiazzare l'operatore di diseguaglianza != con l'operatore “diamond” <>.
Nella sua visone leggermente estremista, rimpiazzare significa rendere il primo un errore di sintassi.
Sempre grazie alla sua nuova posizione è riuscito a far implementare la sua visone nel modulo __future__.
>>> from __future__ import barry_as_FLUFL >>> 0 != 1
restituisce
SyntaxError: with Barry as BDFL, use '<>' instead of '!='
mentre
>>> 0 <> 1 True >>> 1 <> 1 False
>>> import this ... >>> love = this >>> this is love True >>> love is True False >>> love is False False >>> love is not True or False True >>> love is not True or False; love is love # FML True
Questo non è un Easter Egg ma l'ho trovato durante la ricerca del materiale per questo articolo e mi sembrava divertente
""" Easter Eggs! v. 1.0 Coded by Kuba 2017 Happy Easter Sololearners! """ from random import choice def egg(r): for i in range(-r, r): c = choice(['#', '*', 'X', '+', '=']) for j in range(-r, r): if ((i*i + j*j < (r-2)*(r-2))): print(c, end='') else: print('.', end='') print('') print('..Happy Easter Sololearners!..') egg(15)
il cui risultato è
.............................. .............................. .............................. ...........*********.......... .........#############........ .......#################...... ......*******************..... .....XXXXXXXXXXXXXXXXXXXXX.... .....#####################.... ....=======================... ....+++++++++++++++++++++++... ...#########################.. ...+++++++++++++++++++++++++.. ...*************************.. ...+++++++++++++++++++++++++.. ...=========================.. ...+++++++++++++++++++++++++.. ...+++++++++++++++++++++++++.. ...XXXXXXXXXXXXXXXXXXXXXXXXX.. ...XXXXXXXXXXXXXXXXXXXXXXXXX.. ....#######################... ....XXXXXXXXXXXXXXXXXXXXXXX... .....XXXXXXXXXXXXXXXXXXXXX.... .....XXXXXXXXXXXXXXXXXXXXX.... ......###################..... .......#################...... .........#############........ ...........+++++++++.......... .............................. .............................. ..Happy Easter Sololearners!..
Può essere eseguito online qui.