一、編程規范
1.縮進(代碼塊)
類定義、函數定義、選擇結構、循環結構、with塊、行尾的冒號表示縮進的開始。
python程序是依靠代碼塊的縮進來體現代碼之間的邏輯關系,縮進結束就表示一個代碼塊結束。
同一個級別的代碼塊的縮進量必須相同。
一般而言,以4個空格為基本縮進單位。
2.每個import語句只導入一個模塊,最好按標准庫、擴展庫、自定義庫的順序依次導入。

3.最好在每個類、函數定義和一段完整的功能代碼之后增加一個空行,在運算符兩側各增加一個空格,逗號后面增加一個空格。

4.盡量不要寫過長的語句。如果語句過長,可以考慮拆分成多個短一些的語句,以保證代碼具有較好的可讀性。如果語句確實太長而超過屏幕寬度,最好使用續行符(line continuation chharacter)“\”,或者使用圓括號將多行代碼括起來表示一條語句。

5.括號,雖然python運算符有明確的優先級,但對於復雜的表達式建議在適當的位置使用括號使得各種運算的隸屬關系和順序更加明確、清晰。
6.注釋
以符號#開始,表示本行#之后的內容為注釋
包含在一對三引號’‘’ ‘’‘或“”“ ”“”之間且不屬於任何語句的內容江北解釋器認為是注釋。

7.在開發速度和運行速度之間盡量取得最佳平衡。
內置對象運行速度最快,標准庫次之,用C或Fortran編寫的擴展庫速度也比較快,而純Python的擴展庫往往速度慢一些。
在開發項目時,應優先使用Python內置對象,其次考慮使用Python標准庫提供的對象,最后考慮使用第三方擴展庫。
8.根據運算特點選擇最合適的數據類型來提高程序的運行速率。
如果定義一些數據只是用來頻繁遍歷並且關心順序,最好優先考慮元組。
如果需要頻繁的測試一個元素是否存在於一個序列中並且不關心其順序,盡量采用集合。
列表和元組合in操作的時間復雜度是線性的,而對於集合和字典卻是常數級的,與問題規模幾乎無關。
9.充分利用關系運算符以及邏輯運算符and和or的惰性求值特點,合理組織條件表達式中對各條件的先后順序,減少不必要的計算。
10.充分利用生成器對象或類似迭代對象的惰性計算特點,盡量避免將其轉換為列表,元組等類型,這樣可以減傷堆內存的占用,降低空間復雜度。
11.減少內循環中的無關計算,盡量往外層提取。
