Jika Anda membuka juru bahasa Python, dan ketik "import this", seperti yang Anda tahu, itu akan mencetak:
Zen Python, oleh Tim Peters
Cantik lebih baik dari yang jelek.
Eksplisit lebih baik daripada implisit.
Sederhana lebih baik daripada kompleks.
Kompleks lebih baik daripada rumit.
Flat lebih baik daripada bersarang.
Jarang lebih baik daripada padat.
Jumlah keterbacaan diperhitungkan.
Kasus khusus tidak cukup istimewa untuk melanggar aturan.
Meskipun kepraktisan mengalahkan kemurnian.
Kesalahan tidak boleh terjadi secara diam-diam.
Kecuali secara eksplisit dibungkam.
Dalam menghadapi ambiguitas, tolak godaan untuk menebak.
Harus ada satu - dan lebih disukai hanya satu - cara yang jelas untuk melakukannya.
Meskipun demikian mungkin tidak jelas pada awalnya kecuali Anda orang Belanda.
Sekarang lebih baik daripada tidak sama sekali.
Meskipun tidak pernah sering lebih baik daripadatepat sekarang.
Jika implementasinya sulit dijelaskan, itu ide yang buruk.
Jika implementasinya mudah dijelaskan, mungkin itu ide yang bagus.
Namespaces adalah salah satu ide bagus - mari kita lakukan lebih dari itu!
Dalam sumber python (Lib / this.py) teks ini dihasilkan oleh sepotong kode yang aneh:
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"))
. Menuliskan algoritme dengan tangan seperti itu hanyalah kebingungan lebih lanjut dari telur paskah.'Gur Mra bs Clguba, ol Gvz Crgref'.decode('rot13')
.this
juga merupakan bagian dari lelucon karena bahasa lain (misalnya Jawa) menggunakanthis
mirip dengan cara menggunakan Pythonself
. Mengetikimport this
terlihat tidak ada gunanya seperti mengetikimport java.self;
.Jika Anda ingin membuat substitusi ROT13 dengan tangan - atau di kepala Anda - Anda dapat memeriksanya karena 13 * 2 = 26 (jumlah huruf alfabet bahasa Inggris), itu pada dasarnya merupakan pertukaran:
Vs lbh cenpgvfr ybat rabhtu, lbh'yy riraghnyyl znfgre gur Mra bs EBG-13 nytbevguz naq ernq guvf Xyvatba ybbxvat grkgf jvgubhg pbzchgre uryc.
sumber
Ini adalah cipher substitusi, rot13 .
sumber
Ini menggunakan pengkodean ROT13 . Ini digunakan karena ini lelucon.
Anda juga dapat menggunakan fungsi Python untuk mendekode string.
Hanya Python 2:
Python 2 & 3:
sumber
import codecs
. Saya tidak tahu apakah mengimpor codec masih diperlukan atau jika ketersediaandecode
dibuat otomatis dengan beberapa rilis khusus Python. Bisakah Anda menautkan ke dokumentasidecode
yang Anda gunakan?import this
dan akan mencetaknya langsung tanpa kode tambahan.Ini adalah cipher substitusi (seperti yang disebutkan dalam jawaban sebelumnya). Secara historis, itu adalah sandi Caesar .
https://www.google.de/search?q=caesar+cipher&cad=h
sumber