針對今天大佬提了一嘴,特意的去了解了一下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人員的基本素養,努力向這個方向靠攏吧,為了自己的夢想,沖鴨!