Python之禅&import this解读

Python之禅

Python很漂亮。且处处充满着自由的气息,例如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!

文段过短,过于平白,想要翻译出英语视角下的俏皮风实在太难,我中译如下:

Tim Peters的Python之禅

美丽胜过丑陋,显式优于隐式。
简单比复杂好,复杂比繁杂好。
扁平优于嵌套,稀疏胜过密集。
可读性很重要。
纵使实用胜过统一,特例也不足以打破规则。
错误宁杀错不放过,除非你心地善良。
面对两可的事实,拒绝猜测的诱惑。
找寻一个—最好只有一个—明确的方法来完成项目,尽管那条唯一的明确方案不好找,除非你是荷兰人
现在比永不好,永不比马上好。
如果想法很难解释,这是一个坏主意。如果想法很容易解释,那可能是个好主意。
命名空间是个很棒的主意—让我们做更多的事情吧!

#除非你是荷兰人?解释可以参考https://ell.stackexchange.com/questions/85517/zen-of-python-meaning-of-unless-youre-dutch

大意就是说,一群荷兰人发明了Perl,并且将There's More Than One Way To Do It,作为Perl的口号。和这儿Python所提出的找寻唯一解决之道的观点相反。

如果你在刚学Python的时候看一遍Python之禅(最好是刚学编程的时候看一遍),等到一年以后你再看禅,真会觉得蛮有趣的。因为Python总给我们惊喜。

this.py解读

于Python安装目录找寻Lib/this.py,代码如下:

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): #chr A a
    for i in range(26):
        d[chr(i+c)] = chr((i+13) % 26 + c) #+13前13个 -13后13个

print("".join([d.get(c, c) for c in s])) #字母解密,符号保留

作者非常皮,几行输出,他甚至套了一个密码。

密码的关键是使用d[chr(i+c)] = chr((i+13) % 26 + c) ,0-12前十三个数字对应的序号结果+13,13-25后13个数组序号结果-13。即一个字母表上的镜像交换密码。

import你的禅

依葫芦画瓢,我在对应目录下添加了Garry.py(如果import失败请在sys.path中加入对应路径),复制了作者的镜像密码函数。输出了一段自己的禅!

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值