【正文】
馬岱 ( 127) 、 龐德 ( 122) 、 孟獲 ( 122) 、 劉表 ( 120) 、 夏侯惇 ( 116) 《三國演義》人物出場統(tǒng)計 Python之禪 什么樣的程序是好的 ? 如何編寫漂亮的代碼 ? 這都是學習編程一段時間最經(jīng)常提出的問題 , 卻最難回答 。 程序設計語言如同自然語言 , 好的代碼就像文學作品 , 不僅達意 , 更要優(yōu)美 。 那什么是 “好 ”? 什么是 “優(yōu)美 ”? 領悟編程代碼優(yōu)美的過程類似參禪 , 除了不斷練習 , 也需要理解一些原則 。 Python之禪 Python編譯器以函數(shù)庫的形式內(nèi)置了一個有趣的文件 , 被稱為 “Python之禪 ”( The Zen of Python) 。 當調(diào)用如下一行語句后 , 會出現(xiàn)一段有趣的運行結果 。 import this Python之禪 Python之禪 Python之禪 作者: Tim Peters 優(yōu)美勝于丑陋 明了勝于隱晦 簡潔勝于復雜 復雜勝于凌亂 扁平勝于嵌套 間隔勝于緊湊 可讀性很重要 即便假借特例的實用性之名,也不要違背上述規(guī)則 除非你確定需要,任何錯誤都應該有應對 當存在多種可能,不要嘗試去猜測 只要你不是 Guido,對于問題盡量找一種,最好是唯一明顯的解決方案 做也許好過不做,但不假思索就動手還不如不做 如果你無法向人描述你的實現(xiàn)方案,那肯定不是一個好方案 如果實現(xiàn)方案容易解釋,可能是個好方案 命名空間是絕妙的理念,要多運用 譯者心得 以編寫優(yōu)美代碼為目標,不多解釋 優(yōu)美代碼應該清晰明了,規(guī)范統(tǒng)一 優(yōu)美代碼應該邏輯簡潔,避免復雜邏輯 如果必須采用復雜邏輯,接口關系也要清晰 優(yōu)美代碼應該是扁平的,避免太多層次嵌套 優(yōu)美代碼間隔要適當,每行代碼解決適度問題 優(yōu)美代碼必須是可讀且易讀的 上述規(guī)則是至高無上的 捕獲異常,不讓程序留有因錯誤退出的可能 不要試圖給出多種方案,找到一種實現(xiàn)它,幾乎所有人都沒有 Guido那么牛 編程之前要有思考 能說清楚的往往才是對的 適合復雜程序編程 除了 Python之禪所表達的 Python設計理念,該程序還有另一段魅力。請讀者在 Python安裝目錄中找到 Lib/,該程序內(nèi)容如下: Python之禪 Python之禪 該程序第 1到 23行是一個字符串 s, 但字符串并非是明文 。 將 s轉換成內(nèi)容的代碼從 25行到 30行 。 在這些代碼中 , 可以看到字典 、 列表和元組類型 , 下面逐行來閱讀這個代碼的功能 。 第 24行定義了一個空字典 d, 第 26行對字典 d填充了內(nèi)容 , 這個填充將i+c對應的字符替換為 (i+13)%26 +c, 即將編號循環(huán)增加了 13。 chr(65)代表字符 39。A39。, chr(97)代表字符 39。a39。, 因此 , 第 24到 27行建立了字母 a到 z和字母 A到 Z的一個 13位循環(huán)移動的對應表 , 如下所示: Python之禪 密文: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 原文: N O P Q R S T U V W X Y Z A B C D E F G H I J K L M 密文: a b c d e f g h i j k l m n o p q r s t u v w x y z 原文: n o p q r s t u v w x y z a b c d e f g h i j k l m Python之禪 這個算法可以看作是 , 相比凱撒密碼 , 這個算法采用循環(huán)移動 13個位置 , 直接好處是原文和密文之間的相互轉換可以使用同一個程序 , 建議讀者掌握這個算法 , 傳遞個小紙條 、 發(fā)個小消息就不怕被別人看懂了 。 Python之禪 本章主要介紹了組合數(shù)據(jù)類型中元組 、 數(shù)組 、 列表和字典等類型及基本操作, 講解了如何使用 jieba詞庫對中文文檔進行分詞并進一步統(tǒng)計文檔詞頻 , 最后利用 Python之禪例子介紹編寫好代碼的基本原則 。 本章小結 謝謝觀看 /歡迎下載 BY FAITH I MEAN A VISION OF GOOD ONE CHERISHES AND THE ENTHUSIASM THAT PUSHES ONE TO SEEK ITS FULFILLMENT REGARDLESS OF OBSTACLES. BY FAITH I BY FAITH