1. 程式人生 > 其它 >PEP8編碼規範

PEP8編碼規範

PEP8是什麼?

    PEP是Python增強提案(Python Enhancement Proposal)的縮寫,大家通過社群、郵件列表等方式 ,來為Python建言獻策,官方最終會整理成標準文件,將一些規範在每個PEP的版本中體現。而PEP8就是第8個版本。 PEP8是Python對於程式碼的風格指南,給出了Python程式碼組成的編碼約定。我們每個人都會形成自己的編碼風格,但我們應儘量的參考此指南來編寫Python程式碼,致力於程式碼更加規範化。 至於所謂的語法、語法、語法.....灑家絞盡腦汁,只能反覆強調以下幾項。

 

縮排

    Python是一門用空格縮排來區分程式碼層次的語言,其實Python並沒有強制要求你用Tab縮排或者用空格縮排,甚至空格按幾個都沒有強制要求。但

PEP8規範建議四個空格為語句的縮排塊。用縮排來控制不同的語句塊是Python的一大特色,縮排也讓Python的程式碼更優美,簡潔。 在日常編輯中,當代碼量增多,邏輯語句複雜時。因為縮排造成的bug層出不窮,比如造成邏輯判斷的報錯,造成程式的異常退出等,都是需要我們注意的。一般的,引起這些錯誤的原因,可能是Tab鍵和空格鍵在不同的編輯環境混用造成的,也可能是你邏輯判斷時忘了縮排,或者多了一個縮排,不過沒關係,只要我們在敲程式碼時,注意點,並且PyCharm在縮排錯誤時,會有提示的(一般為飄紅)。 這裡需要的注意的是:這個四個空格,可以手動敲4下空格鍵(廢話!),也可以用鍵盤的Tab鍵(別問在哪,
Q鍵左邊,Capslock鍵上邊)。但是,千萬不要Tab和空格鍵混用,因為不同的編輯器對Tab鍵的解釋是不同的,有的是預設4個空格,有的是8個。但空格永遠是一致的!Python中不提倡用Tab來處理縮排,但一般編輯器的Tab都是4個空格,我們也能設定嘛!反正要是讓灑家一直咔咔咔咔咔咔敲空格,還不如去搬磚(我擦,貌似暴露了什麼).... ps:如果要是想讓程式碼往右側縮排4個,就Tab一次就行了;要是讓程式碼往左側縮排4個空格,就Shift + Tab就完了。如果是整個程式碼塊,選中所有即可。

 

分號

不少有別的語言經驗的大佬來學習Python時。每當敲完一行程式碼後。姿態非常優美的敲個分號作為結束!比如:

print('hello world'); # ×
print('hello world')  # √

Python不建議使用分號!除此之外,也不要用分號連線兩條語句:

x = 3;print('hello world')

為了Python程式碼更加優美、簡潔,請忘記分號吧!

 

符號

新手上路,你在行尾敲個分號Python也就認了。但是你來個中文的分號就不能忍了!所以,包括冒號、大於小於不等於、感嘆號、逗號、括號、引號等等請使用英文狀態下的符號。

 

註釋

在Python中註釋分為兩種方式:

  • 單行註釋(#號表示):一般用來對一行程式碼或者幾行程式碼進行註釋

  • 多行註釋(三對引號表示):一般用與對較多的程式碼行或程式碼塊進行註釋,或者對整個檔案進行描述,下圖演示了單行註釋和多行註釋在實際編寫程式碼中的示例。

 

    別忘了,我們寫的程式碼是給誰看的?你可能會說是給計算機?CPU?是個鬼鬼!是給人看的!程式碼只要符合規範,直譯器都能屁顛屁顛交給CPU去執行。但是這個規範還不夠,因為你不寫註釋,Python直譯器就解釋不了了?該有的空格沒有就不行了? 我們要在一些重要的地方加上一些註釋,讓別人一眼就知道是幹啥用的。就像產品的說明書一樣。該有的不能少!

但也不能滿篇都是註釋!這就顯得low了。要顯得恰如其分,起到畫龍點睛的作用!給人一種一看就有一種:我x,大佬啊,這應該裱起來帖床頭,時時瞻仰啊!不能讓人家一看:我x,這是什麼?dogshit

 

引號

在Python中,單引號和雙引號都能用來表示一個字串,比如:

str1 = 'coolguy'  
str2 = "coolguy" 

在Python中,str1和str2是沒有區別的,但是在有些情況下,卻要注意的,例如你如何定義:I’m oldboy,這時候就要單雙引號搭配使用了,如:

str3 = "I'm coolguy"  

這也是Python人性化的方面之一,至於複雜的用法,我們後面講字串的時候再說。

 

邏輯行與物理行

Python執行程式碼的順序是從上到下順序執行的,邏輯行,就是Python認識的單條語句,而物理行是我們認識的單條語句。當然你想在一個物理行上寫多個邏輯行,那麼你要用;來標明這種用法。

x = 5;print(x)  

但之前已經說過了,分號啥的還是忘記吧!Python希望我們每行都只寫一條語句,這樣使得程式碼更易讀。

x = 5  
print(x)  

那麼,你可能會說,這個一行萬一放不下怎麼辦?那就用到了行連線\符號,如:

>>> name =  "I'm oldboy, I love pyt\  
... hon"  
>>> name  
"I'm oldboy, I love python"  

 

行長度

一般的,每行不超過80個字元,但也有例外:

  • 長的匯入模組語句

  • 註釋裡的URL

  • 不要使用反斜槓連線行

Python會將 圓括號, 中括號和花括號中的行隱式的連線起來 , 你可以利用這個特點. 如果需要, 你可以在表示式外圍增加一對額外的圓括號:

if (width == 0 and height == 0 and
         color == 'red' and emphasis == 'strong'):pass

如果一個文字字串在一行放不下, 可以使用圓括號來實現隱式行連線:

x = ('This will build a very long long '
     'long long long long long long string')

 

空行

頂級定義之間空兩行, 方法定義之間空一行。 頂級定義之間空兩行, 比如函式或者類定義. 方法定義, 類定義與第一個方法之間, 都應該空一行. 函式或方法中, 某些地方要是你覺得合適, 就空一行。