在Python解釋器中輸入「import this」會發生什麼?若是你不知道這個彩蛋,推薦繼續閱讀這篇文章。python
2001年秋,Foretec(一家會議組織公司)正在準備召開第十屆International Python Conference(IPC 10,Pycon的前身),Foretec打算徵集一條印在會議T恤衫上的標語,最終他們從Python社區收到了500多條投稿。編程
Foretec邀請了Python的核心開發Guido, Fred, Jeremy,Tim Peter,Barry 等來擔任評審。評審委員們從投稿中過濾出了130多條後就一直沒有進展,直到會議快要召開時他們也沒有肯定最終標語。ui
會議就要開始的前幾天,到了評審們不得不作出決定的時候了。因而由Tim Peter和Barry 兩人輪流評審,每人每次淘汰一半留下一半,直到最後只剩一條。this
最終,「import this」被選了出來,你們對"import this"很是滿意。可是當選擇了這條之後,他們意識到他們必需要實現它。通過簡單的討論後,「import this」的被定爲輸出Tim Peter寫的《The Zen of Python》——Python編程和設計的指導原則。spa
Time Peter建議在代碼中對輸出的內容作一些簡單的混淆,因而他們就用rot13對打印內容進行了一些處理。若是你打開lib下的this.py你就會發現下面內容。翻譯
其實,rot13就是凱撒密碼的一種,每一個字母變換爲它後面的第13個字母。例如A變換爲它後面的第13個字母N,全部字母變換關係以下圖:設計
等到IPC 10結束後,做爲慶祝此次會議圓滿結束的活動之一就是他們悄悄的把代碼提交到Python 2.2.1。過了一段時間,才逐漸有人發現「import this」這個彩蛋。code
下面是《The Zone Of Python》的中文翻譯。這些準則不單單適用於Python,也適用於其它任何語言,值得咱們細細品讀。接口
Python之禪, by Tim Peters
優美勝於醜陋(Python以編寫優美的代碼爲目標)
明瞭勝於晦澀(優美的代碼應當是明瞭的,命名規範,風格類似)
簡潔勝於複雜(優美的代碼應當是簡潔的,不要有複雜的內部實現)
複雜勝於凌亂(若是複雜不可避免,那代碼間也不能有難懂的關係,要保持接口簡潔)
扁平勝於嵌套(優美的代碼應當是扁平的,不能有太多的嵌套)
間隔勝於緊湊(優美的代碼有適當的間隔,不要奢望一行代碼解決問題)
可讀性很重要(優美的代碼是可讀的)
即使假借特例的實用性之名,也不可違背這些規則(這些規則至高無上)
不要包容全部錯誤,除非你肯定須要這樣作(精準地捕獲異常,不寫except:pass風格的代碼) 當存在多種可能,不要嘗試去猜想 而是儘可能找一種,最好是惟一一種明顯的解決方案(若是不肯定,就用窮舉法) 雖然這並不容易,由於你不是Python之父(這裏的Dutch是指Guido) 作也許好過不作,但不假思索就動手還不如不作(動手以前要細思量) 若是你沒法向人描述你的方案,那確定不是一個好方案;反之亦然(方案測評標準) 命名空間是一種絕妙的理念,咱們應當多加利用(倡導與號召)