Python程式碼的風格

更新於 2022/02/11閱讀時間約 3 分鐘
在看官網文件時,看到一份文件:PEP 8 -- Style Guide for Python Code。這份文件是關於Python程式碼風格的指引和建議。
一直以來,在寫程式時總有個小小的困擾,雖不影響程式的正確性和執行結果,但總覺得彆扭。什麼困擾呢?就是程式碼風格的問題。程式碼風格指的是什麼?也沒什麼特別的,就是排版啦、變數名稱的寫法啦、要用大寫還是小寫啦等等。有時候覺得這樣寫不錯,可是過陣子又覺得那樣不好,應該改一改,就光是縮排要三格還是四格這麼簡單的一件事,都可以來來回回變了好幾回。現在既然官網上有這文件,那就照裡頭的指引和建議寫,不用再傷腦筋了。
很快地把文件看過一遍。老樣子!看了後面忘了前面。
在看的過程中,注意到文件裡頭提到,每行最多不要超過79個字元,而註解和docstrings,不要超過72個字元。所以囉,那乾脆就每行都不要超過72個字元得了。看到這規範時,不由得就想起FORTRAN這個古老的程式語言。
那時大一,還是在用5.25”磁碟片的個人電腦上古時代,學的就是FORTRAN。那時的FORTRAN規定,程式碼要寫在第7~72格之間,前面幾格,就留給註解符號「C」和行號用。為什麼會有這規定?據說是因為FORTRAN誕生時,還沒有鍵盤這玩意兒,要靠卡片輸入。那個卡片長得就像考試時要用2B鉛筆劃來劃去的卡片,能寫的範圍就那麼大,所以才會限制程式碼只能寫在固定範圍內。現在連FORTRAN都沒這限制了,Python幹嘛要計較這個?而且現在的螢幕大得很,還越來越大,長長的程式碼,應該不會造成什麼困擾啊!不過根據文件的說明,之所以有這規範,就是在讀程式時,可以開兩個視窗,然後新、舊程式並列在一起,便於工作。另外一個原因,是避免編輯器自動換行所造成的版面混亂,畢竟有些編輯器有自動換行功能,有些沒有,這會造成一些困擾。看來挺有道理的,不是嗎?不過讀到變數名稱的寫法規範時,我就覺得有點不太認同了。
變數名稱的寫法有很多種,如果要節省空間,那camel case應該是比較好的選擇。可是Python卻選了lower_case_with_underscores這種寫法。既然希望每行不要超過72個字元,怎麼不用camel case?用底線的寫法,不是比較會因為超過72個字元而需要切斷換行嗎?實在是不知道用意何在!不過既然文件這麼定,那就這麼寫吧!
其他的還有例如空格、逗號、冒號、刮號等等的用法,其實都跟英文標點符號的排版方式差不多。例如,英文的標點符號是直接接在單字後面,中間沒有空格,後面空一格:We need five animals: two dos, two cats and a horse. 在Python中也是這麼寫,例如:for i in range(2,5):。比較特別的是冒號,可以當標點符號,也可以是operator。如果是operator那就要遵照operator的寫法,例如,要寫成a[3:5],而不是a[3: 5],冒號後面不要有空格。
這林林總總的風格規範,目的其實很單純:提高程式碼的可讀性,以及不同作者程式碼風格的一致性,就如同大家講共同的語言,溝通會比較順暢一樣。Python很看重程式碼的可讀性,在The Zen of Python裡頭就有Readability counts. 這麼一條,也基於這樣的理念,連在程式語法的設計上,都有跟別人不一樣的設計。例如,在Design and History FAQ這份文件中就提到,用縮排來區分程式區塊、在if/while/def/class等statement中,要用到「冒號」等,這些讓我一開始挺不習慣的寫法,原來都有這麼些個考量在。
為什麼會看到廣告
avatar-img
15會員
130內容數
寫點東西自娛娛人
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
ysf的沙龍 的其他內容
讀完文件,接下來就是要動手了。第一步要先安裝Python。爬了些文,最後決定安裝Anaconda。
學程式最怕的,就是抱著書猛啃,把書背得滾瓜爛熟,真正要寫的時候,反而一行都寫不出來。
最近決定好好的把Python給學一學。之所以有這個想法,倒也不是臨時起意或是趕流行,而是決定把想了好久想寫,但卻遲遲未動手的東東給寫一寫。
讀完文件,接下來就是要動手了。第一步要先安裝Python。爬了些文,最後決定安裝Anaconda。
學程式最怕的,就是抱著書猛啃,把書背得滾瓜爛熟,真正要寫的時候,反而一行都寫不出來。
最近決定好好的把Python給學一學。之所以有這個想法,倒也不是臨時起意或是趕流行,而是決定把想了好久想寫,但卻遲遲未動手的東東給寫一寫。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
EAFP(Easier to Ask for Forgiveness than Permission)是Python提倡的防禦性程式碼風格,鼓勵工程師直接撰寫主要業務邏輯,不需要多做檢查,真的出現異常再處理就好。這種風格的程式碼可讀性優於LBYL風格,並且在多進程/多線程場景下表現更好。
Thumbnail
在人與人溝通之間,最怕雞同鴨講,彼此不對頻的狀況常會造成誤會。在程式語言中也會出現類似的情況,所以就有一些約定來彼此約束。 PEP 8 是 Python 社群廣泛遵循的一種風格指南,用於提高 Python 程式碼的可讀性和一致性。一開始是 Python 之父 Guido van Rossum 自己
Thumbnail
您是否苦於網路資訊爆炸嗎? 教學何其多,但卻無法好好選擇的困境呢? 歡迎加入「🔒 阿Han的軟體心法實戰營」, 這裡不給您冗餘的雜訊, 單刀直入直接送您重點, 避開選擇障礙的困境, 讓您獲得業界標準的開發起手式, 成為Top 1的頂尖人才。 我們開發程式的時候, 常常會使用Git來管理我們的
Thumbnail
PyInstaller 是一個強大的工具,可以將 Python 程式碼打包成獨立的可執行檔案,讓你的程式可以在沒有 Python 解釋器的情況下運行。這對於分享和分發你的 Python 應用程式非常有用。以下是使用 PyInstaller 的基本步驟:
Thumbnail
~開始準備練習考照前,請務必下載Spyder~ 為何要下載Spyder? 學校與聯成電腦考照,都是用Spyder。 輸入程式碼,執行看結果。 使用Spyder,按tab鍵,省去打字時間。 將執行成功的程式碼,複製貼上到CodeJudger即時線上評分。 這篇主要是透過Anaconda安裝下載Spy
Thumbnail
我希望透過在好學校開設「Python 的 50+ 練習:資料科學學習手冊」,讓學生一步步完成這門課程所有的觀念講解、範例實作以及練習之後,扎實地將 Python 程式設計與資料科學應用納入自己的技能組,成為一位擅長寫程式處理資料的分析師,大幅提升工作掌握度與職涯發展性!
Thumbnail
  在計算數字時我們要先搞懂運算符號代表的涵義,Python裡面的符號跟我們認知的不會有太大的差別,但是有一些代表不一樣的意思,就必須搞懂才不會在寫程式時,程式碼的重複性太高,會導致日後的維修性降低。
Thumbnail
常常會遇到好不容易寫好程式,但是輸出的時候沒辦法按照自己想要的格式,或是間隔來輸出,這時需要用到的就是格式化輸出,格式化輸出就是調整排版的一個形式。
Thumbnail
一天一課的上著網路上的 Python 課程。有朋友問說,為什麼要學 Python ?未來要作工程師嗎? 猶記得當時也是楞了一下,這個問題,有太多個表層與深層的回覆與想法。 充實隔離時光 最簡單的說法,其實就是想充實自己的隔離時間。當時在上海隔離(可以參見這一系列的隔離相關文:https://ma
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
EAFP(Easier to Ask for Forgiveness than Permission)是Python提倡的防禦性程式碼風格,鼓勵工程師直接撰寫主要業務邏輯,不需要多做檢查,真的出現異常再處理就好。這種風格的程式碼可讀性優於LBYL風格,並且在多進程/多線程場景下表現更好。
Thumbnail
在人與人溝通之間,最怕雞同鴨講,彼此不對頻的狀況常會造成誤會。在程式語言中也會出現類似的情況,所以就有一些約定來彼此約束。 PEP 8 是 Python 社群廣泛遵循的一種風格指南,用於提高 Python 程式碼的可讀性和一致性。一開始是 Python 之父 Guido van Rossum 自己
Thumbnail
您是否苦於網路資訊爆炸嗎? 教學何其多,但卻無法好好選擇的困境呢? 歡迎加入「🔒 阿Han的軟體心法實戰營」, 這裡不給您冗餘的雜訊, 單刀直入直接送您重點, 避開選擇障礙的困境, 讓您獲得業界標準的開發起手式, 成為Top 1的頂尖人才。 我們開發程式的時候, 常常會使用Git來管理我們的
Thumbnail
PyInstaller 是一個強大的工具,可以將 Python 程式碼打包成獨立的可執行檔案,讓你的程式可以在沒有 Python 解釋器的情況下運行。這對於分享和分發你的 Python 應用程式非常有用。以下是使用 PyInstaller 的基本步驟:
Thumbnail
~開始準備練習考照前,請務必下載Spyder~ 為何要下載Spyder? 學校與聯成電腦考照,都是用Spyder。 輸入程式碼,執行看結果。 使用Spyder,按tab鍵,省去打字時間。 將執行成功的程式碼,複製貼上到CodeJudger即時線上評分。 這篇主要是透過Anaconda安裝下載Spy
Thumbnail
我希望透過在好學校開設「Python 的 50+ 練習:資料科學學習手冊」,讓學生一步步完成這門課程所有的觀念講解、範例實作以及練習之後,扎實地將 Python 程式設計與資料科學應用納入自己的技能組,成為一位擅長寫程式處理資料的分析師,大幅提升工作掌握度與職涯發展性!
Thumbnail
  在計算數字時我們要先搞懂運算符號代表的涵義,Python裡面的符號跟我們認知的不會有太大的差別,但是有一些代表不一樣的意思,就必須搞懂才不會在寫程式時,程式碼的重複性太高,會導致日後的維修性降低。
Thumbnail
常常會遇到好不容易寫好程式,但是輸出的時候沒辦法按照自己想要的格式,或是間隔來輸出,這時需要用到的就是格式化輸出,格式化輸出就是調整排版的一個形式。
Thumbnail
一天一課的上著網路上的 Python 課程。有朋友問說,為什麼要學 Python ?未來要作工程師嗎? 猶記得當時也是楞了一下,這個問題,有太多個表層與深層的回覆與想法。 充實隔離時光 最簡單的說法,其實就是想充實自己的隔離時間。當時在上海隔離(可以參見這一系列的隔離相關文:https://ma