本篇文章給大家?guī)?lái)了關(guān)于python的相關(guān)知識(shí),其中主要介紹了Python的基本編碼規(guī)范,包括聲明編碼格式、縮進(jìn)規(guī)則、注釋部分和空行使用等等,希望對(duì)大家有幫助。
推薦學(xué)習(xí):python教程
Python編碼規(guī)范
編碼規(guī)范
在各種編程語(yǔ)言中都存在,可能有的語(yǔ)言中體現(xiàn)的不是很直觀而已
如果是新手學(xué)習(xí)編寫(xiě)代碼,那么在一開(kāi)始就 熟記編碼規(guī)則 對(duì)日后的編寫(xiě)規(guī)范是影響非巨大的!
下面就來(lái)簡(jiǎn)單介紹一些初學(xué)者要牢記的幾種編碼規(guī)范,分為幾個(gè)方面來(lái)介紹,一起來(lái)看一下吧!
Python 采用 PEP 8
作為編碼規(guī)范,其中 PEP
是 Python Enhancement Proposal
(Python 增強(qiáng)建議書(shū))的縮寫(xiě),8 代表的是 Python 代碼的樣式指南。
先來(lái)看一張圖中的代碼
對(duì)比上圖 中的兩段代碼可以發(fā)現(xiàn),它們所包含的代碼時(shí)完全相同的
但是右側(cè)的代碼編寫(xiě)格式明顯看上去比左側(cè)的代碼段更加規(guī)整,閱讀起來(lái)也會(huì)比較輕松、暢快,因?yàn)樗裱俗罨镜?Python 代碼編寫(xiě)規(guī)范。
下面分為幾個(gè)部分來(lái)學(xué)習(xí)一下Python的編碼規(guī)范
,讓我們的代碼更加美觀、漂亮!
聲明編碼格式
-
一般來(lái)說(shuō),聲明編碼格式在腳本中是必需的
-
如果 python 源碼文件 沒(méi)有聲明編碼格式,python 解釋器會(huì)默認(rèn)使用 ASCII 編碼
-
但是這樣有個(gè)缺點(diǎn)就是,一旦出現(xiàn)非ASCII編碼的字符,python 解釋器就會(huì)報(bào)錯(cuò)
-
以 UTF-8 為例,以下兩種編碼格式聲明都是合乎規(guī)則的。
# -*- coding: utf-8 -*-
# coding = utf-8
縮進(jìn)規(guī)則
-
和其它程序設(shè)計(jì)語(yǔ)言(如 Java、C 語(yǔ)言)采用大括號(hào)“{}”分隔代碼塊不同,Python 采用代碼縮進(jìn)和冒號(hào)( : )來(lái)區(qū)分代碼塊之間的層次。
-
在 Python 中,對(duì)于類(lèi)定義、函數(shù)定義、流程控制語(yǔ)句、異常處理語(yǔ)句等,行尾的冒號(hào)和下一行的縮進(jìn),表示下一個(gè)代碼塊的開(kāi)始,而縮進(jìn)的結(jié)束則表示此代碼塊的結(jié)束。
-
注意,Python 中實(shí)現(xiàn)對(duì)代碼的縮進(jìn),可以使用空格或者 Tab 鍵實(shí)現(xiàn)。但無(wú)論是手動(dòng)敲空格,還是使用 Tab 鍵,通常情況下都是
采用 4 個(gè)空格長(zhǎng)度作為一個(gè)縮進(jìn)量
(默認(rèn)情況下,一個(gè) Tab 鍵就表示 4 個(gè)空格)。 -
對(duì)于 Python 縮進(jìn)規(guī)則,初學(xué)者可以這樣理解,Python 要求屬于同一作用域中的各行代碼,它們的縮進(jìn)量必須一致,但具體縮進(jìn)量為多少,并不做硬性規(guī)定。
正確示例代碼:
a=1if a==1: print("正確") # 縮進(jìn)4個(gè)空白占位else: # 與if對(duì)齊 print("錯(cuò)誤") # 縮進(jìn)4個(gè)空白占位
錯(cuò)誤示例代碼:
a=1if a==1: print("正確") else: print("錯(cuò)誤") print("end") # 改正只需將這行代碼前面的空格刪除即可
只需要記住一點(diǎn):統(tǒng)一使用 4 個(gè)空格進(jìn)行縮進(jìn),不要用tab, 也不要tab和空格混用
記住這一點(diǎn),一般來(lái)說(shuō)縮進(jìn)就不會(huì)出現(xiàn)太大的問(wèn)題!
注釋部分
Python中使用 # 進(jìn)行注釋?zhuān)覀冊(cè)谑褂? 的時(shí)候,# 號(hào)后面要空一格
# 注釋部分 # # 注釋部分
在行內(nèi)注釋的時(shí)候,中間應(yīng)該至少加兩個(gè)空格
print("你好,世界") # 注釋
空格
空格
使用的一般性原則:
- 在二元運(yùn)算符兩邊各空一格,算術(shù)操作符兩邊的空格可靈活使用,但兩側(cè)務(wù)必要保持一致
- 不要在逗號(hào)、分號(hào)、冒號(hào)前面加空格,但應(yīng)該在它們后面加(除非在行尾)
- 函數(shù)的參數(shù)列表中,逗號(hào)之后要有空格
- 函數(shù)的參數(shù)列表中,默認(rèn)值等號(hào)兩邊不要添加空格
- 左括號(hào)之后,右括號(hào)之前不要加添加空格
- 參數(shù)列表, 索引或切片的左括號(hào)前不應(yīng)加空格
通常情況下,在運(yùn)算符兩側(cè)、函數(shù)參數(shù)之間以及逗號(hào)兩側(cè),都建議使用空格進(jìn)行分隔。
空行使用
空行
使用的一般性原則:
- 編碼格式聲明、模塊導(dǎo)入、常量和全局變量聲明、頂級(jí)定義和執(zhí)行代碼之間空兩行
- 頂級(jí)定義之間空兩行,方法定義之間空一行
- 在函數(shù)或方法內(nèi)部,可以在必要的地方空一行以增強(qiáng)節(jié)奏感,但應(yīng)避免連續(xù)空行
使用必要的空行可以增加代碼的可讀性,通常在頂級(jí)定義(如函數(shù)或類(lèi)的定義)之間空兩行,而方法定義之間空一行,另外在用于分隔某些功能的位置也可以空一行。
模塊導(dǎo)入部分
導(dǎo)入總應(yīng)該放在文件頂部,位于模塊注釋和文檔字符串之后,模塊全局變量和常量之前。
導(dǎo)入應(yīng)該按照從最通用到最不通用的順序分組,分組之間空一行:
- 標(biāo)準(zhǔn)庫(kù)導(dǎo)入
- 第三方庫(kù)導(dǎo)入
- 應(yīng)用程序指定導(dǎo)入
每個(gè) import 語(yǔ)句只導(dǎo)入一個(gè)模塊,盡量避免一次導(dǎo)入多個(gè)模塊
#推薦import osimport sys #不推薦import os,sys
命名規(guī)范
命名規(guī)范這一塊的大家應(yīng)該都比較熟悉了,但是不同的編程語(yǔ)言之間的明明規(guī)范也是有所區(qū)別的~
Python命名建議遵循的一般性原則:
- 模塊盡量使用小寫(xiě)命名,首字母保持小寫(xiě),盡量不要用下劃線
- 類(lèi)名使用駝峰(CamelCase)命名風(fēng)格,首字母大寫(xiě),私有類(lèi)可用一個(gè)下劃線開(kāi)頭
- 函數(shù)名一律小寫(xiě),如有多個(gè)單詞,用下劃線隔開(kāi)
- 私有函數(shù)可用一個(gè)下劃線開(kāi)頭
- 變量名盡量小寫(xiě), 如有多個(gè)單詞,用下劃線隔開(kāi)
- 常量采用全大寫(xiě),如有多個(gè)單詞,使用下劃線隔開(kāi)
引號(hào)用法
Python中,輸出語(yǔ)句中使用單雙引號(hào)都是可以正確的,但是也有相應(yīng)的編碼規(guī)范
所以我們也不要隨心所欲的添加引號(hào),最好是遵循下面的規(guī)范!
引號(hào)使用的一般性原則:
- 自然語(yǔ)言使用雙引號(hào)
- 機(jī)器標(biāo)識(shí)使用單引號(hào)
- 正則表達(dá)式使用雙引號(hào)
- 文檔字符串 (docstring) 使用三個(gè)雙引號(hào)
分號(hào)用法
Python跟其他幾個(gè)主流編程語(yǔ)言的分號(hào)使用區(qū)別很大
Python的代碼末尾不需要加分號(hào),而Java和C#等都需要添加
不要在行尾添加分號(hào),也不要用分號(hào)將兩條命令放在同一行,例如:
# 不推薦print("Hello") ; print("World")
推薦學(xué)習(xí):python詳細(xì)教程