官术网_书友最值得收藏!

  • 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()方法連接列表。

適當使用異常處理結構可提高程序的容錯性,但不能過分依賴異常處理結構,適當的顯式判斷還是必要的。

主站蜘蛛池模板: 永城市| 皮山县| 绥化市| 丰都县| 中山市| 蚌埠市| 枣庄市| 务川| 南康市| 永昌县| 江孜县| 华阴市| 改则县| 来宾市| 科尔| 太仆寺旗| 永川市| 西城区| 潜山县| 积石山| 伊宁县| 六枝特区| 汝城县| 静安区| 福清市| 如皋市| 吐鲁番市| 南召县| 水富县| 揭西县| 平舆县| 紫云| 祁阳县| 喀什市| 阿巴嘎旗| 贵阳市| 高青县| 芜湖县| 涿州市| 镇赉县| 多伦县|