Python小知识之python之禅

  针对今天大佬提了一嘴,特意的去了解了一下Python之禅,满足一下自己的求知欲。

  Python之禅,英文又叫做 The Zen of Python,它总结了Python的风格,总结出的一种标准,让代码变得更加优美,干练,益读。

  作为一个复活节彩蛋,我们需要输入在import this,就可以进去观看

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

  一开始看是不是很蒙蔽,这是啥玩意儿,经过百度,这其实是一种映射加密,噗!应该是通过ASCII码来进行加密的也就是凯撒加密,对不起,本科密码学都是摸鱼过来的,但是从网上找到了相关解释(T,T)不好好学习的代价。

  下面就是英文版的,这就看得懂了(╹▽╹)

"""
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!
"""

  啥?这都看不懂嘛,咱换成中文版的,这阔以了吧(# ^ . ^ #)

"""
优美胜于丑陋(Python 以编写优美的代码为目标)
明了胜于晦涩(代码应当是明了的,让人看着清清爽爽,而不是满脸懵逼抓耳挠腮)
简洁胜于复杂(代码应当是简洁的,不要有复杂的内部实现)
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系)
扁平胜于嵌套(代码应当是扁平的,不能有太多的嵌套)
间隔胜于紧凑(代码应该有相对应的间隔,不要因为方便忽略可读性)
可读性很重要(优美的代码是可读的)
尽管实用性胜过纯度,特殊情况还不足以打破规则(这些规则至高无上)
最好不要默默的包容所有错误,除非你确定你要这么干
面对模棱两可的想法,不要尝试去猜测
而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法,暴力)
虽然这并不容易,因为你不是 Python 之父( Dutch 是指 Guido,龟叔牛逼! )
做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量清除,比如打点草稿)
如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
名称空间是一种绝妙的理念,我们应当多加了解使用。(**多次强调,很棒的想法)
"""

  看了短短二十几行,感慨颇深,因为有些东西并不是只用于Python,任何语言,任何学习都有所接触,也是我们IT人员的基本素养,努力向这个方向靠拢吧,为了自己的梦想,冲鸭!

posted @ 2020-03-20 17:18  Lance_王  阅读(1216)  评论(0编辑  收藏  举报