目錄
- Python的基礎知識
- 一、編碼規范
- 1.1 注釋
- 1.2 縮進
- 1.3 分號
- 1.4 行長度
- 1.5 空行
- 1.6 源檔案編碼
- 1.7 匯入在單行
- 1.8 括號
- 1.9 空格
- 2.1 識別符號和關鍵字
- 一、編碼規范
Python的基礎知識
一、編碼規范
PEP8[^ 注] 編碼規范
Guido的關鍵點之一是:代碼更多是用來讀而不是寫,編碼規范旨在改善Python代碼的可讀性,
風格指南強調一致性,專案、模塊或函式保持一致都很重要,
[^ 注]: PEP是Python Enhancement Proposals的縮寫,一個PEP是一份為Python社區提供各種增強功能的技術規格,也是提交新特性,以便讓社區指出問題,精確化技術檔案的提案,《Python Enhancement Proposal #8》 (8號python增強提案)又叫PEP8,他針對的python代碼格式而編訂的風格指南,
1.1 注釋
所謂注釋,就是在程式中添加解釋說明,能夠大大增強程式的可讀性,注釋中的內容,不是真正要執行的程式,起輔助說明作用
單行注釋
以#開頭,#右邊的所有東西當做說明
# 我是注釋,可以在里寫一些功能說明之類的哦
print('hello world')
多行注釋(檔案注釋)
使用3引號,3個單引號或者3個雙引號
'''
我是多行注釋,可以寫很多很多行的功能說明
這就是我牛X指出
哈哈哈,,,
'''
"""
我也是多行注釋啊,巴拉巴拉,,
"""
1.2 縮進
每級縮進用4個空格
python 不使用 {} 來組織代碼,完全依靠縮進,所以縮進的格式非常重要,
使用4個空格來縮進,不要使用 tab ,更不能 tab 和 空格混用,
使用空格的時候永遠使用4個空格,不能使用其他數量的空格,否則語法錯誤,
建議把開發工具的tab改成4個空格,
1.3 分號
python不嚴格要求使用分號( ;),
理論上應該每行放一句代碼,每行代碼之后可以添加 分號; 也可以不添加 分號;
盡量不要多句代碼放在一行,如果放在一行,則需要添加分號把他們隔開,
1.4 行長度
每行不超過80個字符(最大行寬為79字符,文本長塊,比如檔案字串或注釋,行長度應限制為72個字符,)
以下情況除外:
- 長的匯入模塊陳述句
- 注釋里的URL
不要使用反斜杠連接行,
如果一個文本字串在一行放不下, 可以使用圓括號來實作隱式行連接:
x = ('這是一個非常長非常長非常長非常長 '
'非常長非常長非常長非常長非常長非常長的字串')
1.5 空行
兩行空行分割頂層函式和類的定義,
類的方法定義用單個空行分割,
額外的空行可以必要的時候用于分割不同的函陣列,但是要盡量節約使用,
額外的空行可以必要的時候在函式中用于分割不同的邏輯塊,但是要盡量節約使用,
1.6 源檔案編碼
在核心Python發布的代碼應該總是使用UTF-8(ASCII在Python 2),
# Python推薦使用
#-*- coding:utf-8 -*-
# 簡化寫法
# encoding: utf-8
Python 3(默認UTF-8)不應有編碼宣告,
1.7 匯入在單行
import os
from urllib2 import request
匯入始終在檔案的頂部,在模塊注釋和檔案字串之后,在模塊全域變數和常量之前,
匯入順序如下:標準庫進口,相關的第三方庫,本地庫,各組的匯入之間要有空行,
禁止使用通配符匯入,
1通配符匯入(from import *)應該避免,因為它不清楚命名空間有哪些名稱存,混淆讀者和許多自動化的工具,
1.8 括號
寧缺毋濫的使用括號,除非是用于實作行連接, 否則不要在回傳陳述句或條件陳述句中使用括號. 不過在元組兩邊使用括號是可以的.
括號里邊避免空格
# 括號里邊避免空格
# Yes
spam(ham[1], {eggs: 2})
# No
spam( ham[ 1 ], { eggs: 2 } )
1.9 空格
按照標準的排版規范來使用標點兩邊的空格
1.9.1括號內不要有空格.
Yes: spam(ham[1], {eggs: 2}, [])
No: spam( ham[ 1 ], { eggs: 2 }, [ ] )
1.9.2 不要在逗號, 分號, 冒號前面加空格, 但應該在它們后面加(除了在行尾).
Yes: x = 4
if x == 4:
y = 2
print(x,y)
x,y = y,x #交換了兩個數
print(x,y)
No: if x == 4 :
print(x , y)
x , y = y , x
1.9.3引數串列, 索引或切片的左括號前不應加空格.
Yes: spam(1)
no: spam (1)
Yes: dict['key'] = list[index]
No: dict ['key'] = list [index]
1.9.4在二元運算子兩邊都加上一個空格,
比如賦值(=), 比較(==, <, >, !=, <>, <=, >=, in, not in, is, is not), 布爾(and, or, not). 至于算術運算子兩邊的空格該如何使用, 需要你自己好好判斷. 不過兩側務必要保持一致.
Yes: x == 1
No: x<1
但是注意:當'='用于指示關鍵字引數或默認引數值時, 不要在其兩側使用空格.
Yes: def complex(real, imag=0.0): return magic(r=real, i=imag)
No: def complex(real, imag = 0.0): return magic(r = real, i = imag)
用空格來垂直對齊多行間的標記, 因為這會成為維護的負擔(適用于:, #, =等):
Yes:
foo = 1000 # 注釋
long_name = 2 # 注釋不需要對齊
dictionary = {
"foo": 1,
"long_name": 2,
}
No: ./ˉ9*((XQ))
foo = 1000 # 注釋
long_name = 2 # 注釋不需要對齊
dictionary = {
"foo" : 1,
"long_name": 2,
}
強烈不建議使用復合陳述句(Compound statements: 多條陳述句寫在同一行),
if foo == 'blah': print(100)
2.1 識別符號和關鍵字
識別符號就是對程式中變數,常量,類,方法,引數等命名時使用的字符序列,
關鍵字(保留字)就是python中預先保留下來,具有特殊含義的詞,
Python的關鍵字:
and as assert break class continue def del elif else except
exec finally for from global if in import is lambda not or pass
print raise return try while with yield
命名規則如下(會背)
-
識別符號由字母,下劃線,和數字組成,且數字不能開頭
-
python 大小寫敏感, a 和 A 是完全不同的,
-
不能是python關鍵字,
編碼習慣:
-
見名知意
-
使用有意義的,英文單詞或詞組,絕對不要使用漢語拼音
-
下劃線命名和駝峰式命名
? 下劃線:student_name
? 小駝峰:studentName
? 大駝峰:StudentNameTable
-
避免采用的名字
決不要用字符'l'(小寫字母el),'O'(大寫字母oh),或 'I'(大寫字母eye) 作為單個字符的變數名,一些字體中,這些字符不能與數字1和0區別,用'L' 代替'l'時,
補充:pycharm的一些常用快捷鍵
ctrl+y:洗掉當前行
ctrl+d:復制當前行
ctrl+/:添加或洗掉注釋
ctrl+alt+L:格式化
shift+enter:強制換行
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/162020.html
標籤:Python
