Python程式碼的風格

更新於 發佈於 閱讀時間約 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會員
131內容數
寫點東西自娛娛人
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
ysf的沙龍 的其他內容
讀完文件,接下來就是要動手了。第一步要先安裝Python。爬了些文,最後決定安裝Anaconda。
學程式最怕的,就是抱著書猛啃,把書背得滾瓜爛熟,真正要寫的時候,反而一行都寫不出來。
最近決定好好的把Python給學一學。之所以有這個想法,倒也不是臨時起意或是趕流行,而是決定把想了好久想寫,但卻遲遲未動手的東東給寫一寫。
讀完文件,接下來就是要動手了。第一步要先安裝Python。爬了些文,最後決定安裝Anaconda。
學程式最怕的,就是抱著書猛啃,把書背得滾瓜爛熟,真正要寫的時候,反而一行都寫不出來。
最近決定好好的把Python給學一學。之所以有這個想法,倒也不是臨時起意或是趕流行,而是決定把想了好久想寫,但卻遲遲未動手的東東給寫一寫。
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
ITS python認證內容含蓋六大主題
Thumbnail
在Python中,我們可以用def關鍵字定義函數,並透過函數名稱呼叫它。函數參數可以是必填、關鍵字、默認或不定長度的類型。return語句負責結束函數並回傳值。全域變數可以在整個程序中使用,而區域變數只能在特定函數內使用。我們還可以在一個文件中定義函數,然後在另一個文件中呼叫它。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
在程式中,了解資料型態是相當重要的。 為什麽? 因為許多error,常常都是因為資料型態不正確所導致的。 舉個例子,在python中: a = 1 + 2 print(a) 結果就是3 a = = "1"+"2" print(a) 結果就是12 是不是差很多? 所以今天我來介
Thumbnail
軟體開發時應該要有固定的命名規則,以提高程式的可讀性,本篇文章帶你認識常見的幾個命名方法。
Thumbnail
f字符串(f-string)在Python 3.6版本引入了新特性,可以更方便地格式化字符串。本文介紹了f-string的基本使用方法,以及表達式、運算符、格式化控制、字典和列表的應用,以及調用方法和函數等。f-string提供了一種更靈活的方式,使你能夠控制字符串的外觀,以滿足不同情況下的需求。
Thumbnail
在人與人溝通之間,最怕雞同鴨講,彼此不對頻的狀況常會造成誤會。在程式語言中也會出現類似的情況,所以就有一些約定來彼此約束。 PEP 8 是 Python 社群廣泛遵循的一種風格指南,用於提高 Python 程式碼的可讀性和一致性。一開始是 Python 之父 Guido van Rossum 自己
Thumbnail
宣告變數 變數是程式中用來儲存和表示數據的標識符號​,並將變數存放在某個記憶體位子 可以用ID的方法查找變數存在哪個記憶體,此方法有利於以後查找問題用。 在大多數程式語言中,變數需要事先聲明(宣告)並賦值。 而Python是一種動態類型語言,不需要顯式宣告變數類型,而是在賦值時自動進行推斷。
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
ITS python認證內容含蓋六大主題
Thumbnail
在Python中,我們可以用def關鍵字定義函數,並透過函數名稱呼叫它。函數參數可以是必填、關鍵字、默認或不定長度的類型。return語句負責結束函數並回傳值。全域變數可以在整個程序中使用,而區域變數只能在特定函數內使用。我們還可以在一個文件中定義函數,然後在另一個文件中呼叫它。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
在程式中,了解資料型態是相當重要的。 為什麽? 因為許多error,常常都是因為資料型態不正確所導致的。 舉個例子,在python中: a = 1 + 2 print(a) 結果就是3 a = = "1"+"2" print(a) 結果就是12 是不是差很多? 所以今天我來介
Thumbnail
軟體開發時應該要有固定的命名規則,以提高程式的可讀性,本篇文章帶你認識常見的幾個命名方法。
Thumbnail
f字符串(f-string)在Python 3.6版本引入了新特性,可以更方便地格式化字符串。本文介紹了f-string的基本使用方法,以及表達式、運算符、格式化控制、字典和列表的應用,以及調用方法和函數等。f-string提供了一種更靈活的方式,使你能夠控制字符串的外觀,以滿足不同情況下的需求。
Thumbnail
在人與人溝通之間,最怕雞同鴨講,彼此不對頻的狀況常會造成誤會。在程式語言中也會出現類似的情況,所以就有一些約定來彼此約束。 PEP 8 是 Python 社群廣泛遵循的一種風格指南,用於提高 Python 程式碼的可讀性和一致性。一開始是 Python 之父 Guido van Rossum 自己
Thumbnail
宣告變數 變數是程式中用來儲存和表示數據的標識符號​,並將變數存放在某個記憶體位子 可以用ID的方法查找變數存在哪個記憶體,此方法有利於以後查找問題用。 在大多數程式語言中,變數需要事先聲明(宣告)並賦值。 而Python是一種動態類型語言,不需要顯式宣告變數類型,而是在賦值時自動進行推斷。