- Python完全自學教程
- 明日科技編著
- 1331字
- 2023-10-09 15:50:39
2.2 編碼格式
2.2.1 代碼縮進
Python采用代碼縮進和冒號“:”區分代碼之間的層次。縮進可以使用<Space>鍵或者<Tab>鍵實現。使用<Space>鍵時,通常情況下采用4個空格作為縮進量;而使用<Tab>鍵時,則將按一次<Tab>鍵產生的縮進作為縮進量。通常情況下建議使用<Space>鍵進行縮進。
在Python中,對于類定義、函數定義、流程控制語句,以及異常處理語句等,行尾的冒號和下一行的縮進表示一個代碼塊的開始,而縮進結束,則表示一個代碼塊的結束。
例如,下面代碼中的縮進為正確的縮進。
pwd = input("輸入密碼:").strip() # 要求輸入密碼,strip()方法用于去除空格
repwd = input("確認密碼:").strip() # 要求輸入確認密碼,strip()方法用于去除空格
if pwd == repwd : # 判斷密碼是否一致
print("密碼輸入正確!") # 輸出"密碼輸入正確!"
else:
print("確認密碼與輸入密碼不一致!") # 輸出"確認密碼與輸入密碼不一致!"
Python對代碼的縮進要求非常嚴格,同一個級別的代碼塊的縮進量必須相同。如果不進行合理的代碼縮進,將拋出SyntaxError異常。例如,代碼中有的縮進量是4個空格,還有的是3個空格,就會出現SyntaxError異常,如圖2.1所示。

圖2.1 縮進量不同導致的SyntaxError異常
在IDLE中,一般以4個空格作為基本縮進量。不過也可以選擇“Options”→“Configure IDLE”命令,在打開的“Settings”對話框(如圖2.2所示)的“Fonts/Tabs”選項卡中修改基本縮進量。

圖2.2 修改基本縮進量
多學兩招
在IDLE的文件窗口中,可以通過選擇主菜單中的“Format”→“Indent Region”命令(或按快捷鍵<Ctrl+]>),將選中的代碼進行縮進(向右移動指定的縮進量),也可通過選擇主菜單中的“Format”→“Dedent Region”命令(或按快捷鍵<Ctrl+[>),對代碼進行反縮進(向左移動指定的縮進量)。
2.2.2 編碼規范
Python采用PEP 8作為編碼規范,其中PEP是Python Enhancement Proposal的縮寫,翻譯成中文是Python增強建議書,而8表示版本號。PEP 8是Python代碼的樣式指南。下面給出PEP 8編碼規范中的一些應該嚴格遵守的條目。
每個import語句只導入一個模塊,盡量避免一次導入多個模塊。圖2.3所示為推薦寫法,而圖2.4所示為不推薦寫法。

圖2.3 推薦寫法

圖2.4 不推薦寫法
不要在行尾添加分號“;”,也不要用分號將兩條命令放在同一行。例如,圖2.5所示的代碼為不規范寫法。

圖2.5 不規范寫法
建議每行不超過80個字符,如果超過,建議使用圓括號“()”將多行內容隱式地連接起來,而不推薦使用反斜線“\”進行連接。例如,某個字符串文本在一行上顯示不完全,那么可以使用圓括號將其分行顯示,代碼如下。
print("雖然我是一只蝸牛,我一直在爬,也許還沒有爬到金字塔的頂端,"
"但是只要我在爬,就足以給自己帶來令生命感動的瞬間。")
例如,以下通過反斜線進行連接的做法是不推薦使用的。
print("雖然我是一只蝸牛,我一直在爬,也許還沒有爬到金字塔的頂端,\
但是只要我在爬,就足以給自己帶來令生命感動的瞬間。")
不過以下兩種情況除外。
導入模塊的語句過長。
注釋里的URL。
使用必要的空行可以增加代碼的可讀性。一般在頂級定義(如函數或者類的定義)之間空兩行,而在方法定義之間空一行。另外,在用于分隔某些功能的位置也可以空一行。
通常情況下,在運算符兩側、函數參數之間、逗號“,”兩側建議使用空格進行分隔。
應該避免在循環中使用“+”和“+=”運算符累加字符串。這是因為字符串是不可變的,這樣做會創建不必要的臨時對象。推薦將每個子字符串加入列表,然后在循環結束后使用join()方法連接列表。
適當使用異常處理結構可提高程序的容錯性,但不能過分依賴異常處理結構,適當的顯式判斷還是必要的。