Easter eggs and hidden jokes in Python

Despite being a serious language, Python is full of Easter eggs and hidden references to persons and the language itself. Below are a few commonly found around forums.

Braces instead of white-space indentation

Python is designed to use white-space for indentation. The braces library were supposed to change this and bring back C-style indentation. Honestly I would love it, but as of now this is what Python returns.

>>> from __future__ import braces
  File "", line 1
SyntaxError: not a chance

Hidden poetry

Introduced in PEP20. This poem by Tim Peters, called The Zen of Python, a collection of 20 software principles that influences the design of Python.

>>> import this
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!

Obfuscation of a poetry

This is how the this.py module referenced in the above ‘Hidden Poetry’ Easter-egg looks. The code that unobfuscates it is at the end.

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]))

Comics

This Easter-egg in Python is the antigravity one, which redirects to a xkcd strip.

>>> import antigravity

BDFL Retirement

Released as a April fool joke in reference to the retirement of Guido van Rossum, aka BDFLPEP401 – one of the official acts was to reinstate the <> comparison operator which existed in Python 2 and was removed in Python 3. Guido’s successor was chosen as Barry Warsaw, affectionately known as Uncle Barry – Friendly Language Uncle For Life (FLUFL).

>>> 1 <> 3
  File "", line 1
    1 <> 3
       ^
SyntaxError: invalid syntax
>>> from __future__ import barry_as_FLUFL
>>> 1 <> 3
True