Si abre un intérprete de Python y escribe "importar esto", como ya sabe, imprime:
El zen de Python, por Tim Peters
Hermoso es mejor que feo.
Explícito es mejor que implícito.
Simple es mejor que complejo.
Complejo es mejor que complicado.
Plano es mejor que anidado.
Escaso es mejor que denso.
La legibilidad cuenta.
Los casos especiales no son lo suficientemente especiales como para romper las reglas.
Aunque la practicidad supera la pureza.
Los errores nunca deben pasar en silencio.
A menos que sea silenciado explícitamente.
Ante la ambigüedad, rechaza la tentación de adivinar.
Debe haber una, y preferiblemente solo una, forma obvia de hacerlo.
Aunque esa manera puede no ser obvia al principio a menos que seas holandés.
Ahora es mejor que nunca.
Aunque nunca es mejor quederecho ahora.
Si la implementación es difícil de explicar, es una mala idea.
Si la implementación es fácil de explicar, puede ser una buena idea.
Los espacios de nombres son una gran idea, ¡hagamos más de eso!
En la fuente de Python (Lib / this.py) este texto es generado por un curioso fragmento de código:
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])
import codecs; print(codecs.decode(s, "rot-13"))
. Escribir el algoritmo a mano de esa manera fue solo una ofuscación adicional del huevo de pascua.'Gur Mra bs Clguba, ol Gvz Crgref'.decode('rot13')
.this
también forma parte de la broma porque otros lenguajes (p. ej., Java) se usan de formathis
similar a cómo usa Pythonself
. Escribirimport this
parece tan inútil como escribirimport java.self;
.Si desea realizar la sustitución ROT13 a mano, o en su cabeza, puede verificarlo porque 13 * 2 = 26 (el número de letras del alfabeto inglés), es esencialmente un intercambio:
Vs lbh cenpgvfr ybat rabhtu, lbh'yy riraghnyyl znfgre gur Mra bs EBG-13 nytbevguz naq ernq guvf Xyvatba ybbxvat grkgf jvgubhg pbzchgre uryc.
fuente
Es un cifrado de sustitución, rot13 .
fuente
Utiliza ROT13 codificación. Esto se usa porque es una broma.
También puede usar las funciones de Python para decodificar cadenas.
Python 2 solamente:
Python 2 y 3:
fuente
import codecs
. No sé si todavía se necesita importar códecs o si la disponibilidad dedecode
se hizo automática con alguna versión particular de Python. ¿Podría vincular a la documentación deldecode
que está utilizando?import this
y lo imprimirá directamente sin ningún código adicional.Es un cifrado de sustitución (como se mencionó en las respuestas anteriores). Históricamente hablando, es el cifrado César .
https://www.google.de/search?q=caesar+cipher&cad=h
fuente