码迷,mamicode.com
首页 > 其他好文 > 详细

import this编解码

时间:2015-06-15 18:01:34      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

1.import this  对应python的禅意:The Zen of Python, by Tim Peters ,有个解码(姑且叫解码)过程;

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

 试着把 d键值翻转,得到编码的字典

 

>>> for key,value in d.iteritems():
    d1[value]=key

    
>>> d1
{A: N, C: P, B: O, E: R, D: Q, G: T, F: S, I: V, H: U, K: X, J: W, M: Z, L: Y, O: B, N: A, Q: D, P: C, S: F, R: E, U: H, T: G, W: J, V: I, Y: L, X: K, Z: M, a: n, c: p, b: o, e: r, d: q, g: t, f: s, i: v, h: u, k: x, j: w, m: z, l: y, o: b, n: a, q: d, p: c, s: f, r: e, u: h, t: g, w: j, v: i, y: l, x: k, z: m}

解码的字典d和编码的d1内容一样 ,也就是this.s, 是用同样的算法,同样的字典算使用正常书写的zen获得的

 ‘A‘ 65 ->‘N‘   78

 ‘B‘ 66-> ‘0‘   79

 ‘M‘ 77->  ‘Z‘  90

--------

 ‘N‘ 78 -> ‘A‘  65

 ‘O‘ 79 -> ‘B‘  66

 ‘Z‘ 90->  ‘M‘  77  

import this编解码

标签:

原文地址:http://www.cnblogs.com/Citizen/p/4578452.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!