如果要學一門能撩妹的計算機語言,那就學習python吧

作為一個專業修(漂亮妹子)電腦的,本狗很多時候被問到推薦一門易學好用又能裝逼的計算機語言,於是今天我就來小小得罪你們一下:

這門語言必須就是Python啊!(歡迎來戰)

如果要學一門能撩妹的計算機語言,那就學習python吧

私聊小編,小編有python的全部資料免費送。私聊“資料”

作為現在美國頂尖大學計算機專業最受歡迎的入門語言,再加之搭上了現在機器學習的東風,Python之所以這麼火,是有它的道理的。

然而本狗今天推薦它的主要理由卻是這個:

如果要學一門能撩妹的計算機語言,那就學習python吧

私聊小編,小編有python的全部資料免費送。私聊“資料”

我相信,大多數時下為了想要在目前火熱的IT領域找一份工作而開始學習Python的人,都沒有看過這個東西——The Zen of Python(Python禪道)。略懂Python的人只需要在命令行裡輸入import this,就能看到由Python領域著名的領軍人物之一——Tim Peters寫下的這一段闡述了Python禪道的文字,簡單,卻又略顯晦澀。

本狗非常非常喜歡這段文字,將淺顯的理解翻譯如下:

優美勝於醜陋(Python以編寫優美的代碼為目標)

簡明勝於隱晦(代碼應該是簡潔明瞭,而不是複雜難懂的)

簡單勝於複雜(如果能有簡單的方法實現,就不應該使用複雜的方法)

複雜勝於繁複(如果必須要以複雜的方式呈現,需要儘量簡化而不使其繁複凌亂)

扁平勝於嵌套(優美的代碼模塊需要清晰,繁複的聯繫要儘量少)

稀疏勝於緊湊(或許寫的是代碼應該稀疏,有條理方便閱讀,而不是一行解決)

可讀性很重要

任何特殊狀況都不應該打破上述規則

即使實用性重於(理論)的純粹性(代碼是用來解決實際問題的,純粹的理論只存在於設計,有很多需要單獨處理的邊界情況)

錯誤卻不能在不被知曉的情況下包容(任何錯誤都需要被知曉)

除非你允許它這樣被包容(在被知曉的情況下如何處理是設計者的責任)

當存在多種可能,放棄猜測

在這裡永遠只有一種,而且是唯一一種明顯的解決方案(奧卡姆剃刀的體現:如無必要,勿增實體)

雖然這並不容易,因為你不是Python之父(這個Dutch荷蘭人指Guido, Python的創造者)

即刻動手勝於拖延

審慎思考勝於魯莽

好的實現是容易被解釋的

反之亦然(好的代碼永遠是自解釋的)

命名空間是絕妙的理念,我們應該多使用

以上便是Python禪道的19條內容,然而實際上它在官方的包描述裡包含了20條內容,為什麼如此呢?本狗先賣一個關子,說點有的沒的,把彩蛋放在最後。

之所以這是本狗推薦Python的最主要理由,是因為我認為在學習一樣東西之前,你得明白它是幹什麼的,它為什麼要這樣做(設計)。

然而本狗殘酷地發現,現在大多數想要學習一門計算機語言的人,或者學習計算機這個鄰域的人,純粹是因為“編程好找工作啊”,“碼農工資高啊”等這一些大同小異的理由,而不是對一個領域本身的愛好。僅僅是為了會使用這個工具,找一個能使用這個工具的工作,眼裡看到的只是高薪和大量的職位需求——這也許就是你一輩子緣木求魚的開端。

如果我們簡單地僅僅把這些語言當做工具使用,認為其它的東西(數學原理,業務邏輯)才是重要的;商學院的CEO們也僅僅把碼農們當做工具使用,認為高大上的想法或者商業運作才是重要的——那麼這兩者並沒有太大的本質區別。為什麼?

因為當你不用心對待一件事物的時候,這件事物也不會用心對你——對人也好,對物也罷,萬事萬物都是這個道理。

還在上學的時候,語文課本上看過的兩個小故事讓本狗至今難忘,出自馮驥才先生的《俗世奇人》——泥人張賤賣海張五,刷子李刷牆沒白星——這才是使用工具時需要的“工匠精神”,他們手中的夥計,都是有“靈性”的。

真正出類拔萃的工匠,對他們手中的工具是有感情的,他們手中的工具,是比別人的工具都要有“靈性”的,因為他們比誰都瞭解他們手上的老夥計。在這個浮躁的世界中,我們仍然保持著對“工匠精神”的敬佩,看看火的不行的《我在故宮修文物》系列就知道了。

學習編程語言嘛,自然也是這個道理。比如Python的禪道,比如與Python設計思想截然不同的Perl,比如瑞士軍刀C++,他們都有自己設計的初衷,這些甚至也代表了在一個編程語言領域內的哲學意義。

那麼最後這第20條禪道是什麼呢?本狗猜想是這個包源代碼想表達的

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 = {}

forcin(65, 97):

foriinrange(26):

d[chr(i+c)] = chr((i+13) % 26 + c)

print"".join([d.get(c, c)forcins])

這段雜亂無章的代碼,用一個頑皮且混亂的ROT13加密算法實現加密了這19條Python箴言,在某種程度上提供了一個大反例,是不是就是Tim Peter給我們的現身說法呢?

開頭一句話,內容全靠編,這個就是小編的工作了。

私聊小編,小編有python的全部資料免費送。私聊“資料”


分享到:


相關文章: