7.1 縮排的重要性
有時候你需要把多條指令組成一個群組。我們把這種群組稱為指令區塊或簡單講程式碼區塊。 在 Python 中,程式碼區塊 是用縮排來定義的,這讓程式結構更清晰可讀。
和許多其他程式語言中用括號或關鍵字來定義程式碼區塊的方式不同,Python 使用縮排來 區分指令的邏輯結構,這種方式被稱為區塊結構。
理論上,縮排可以用空格或 tab 完成。然而根據 PEP 8, Python 程式設計的官方風格指南, 我們應該 使用 4 個空格來表示 一層縮排。保持整段程式碼使用一致的縮排風格是非常重要的。
區塊的結構:
程式碼區塊以一條指令開始,其後接著
冒號 (例如 if
、
for
、while
、def
、class
)
並在下一行進行縮排。
所有擁有同樣縮排層級的指令會被視為同一區塊的一部分。
縮排會影響 Python 對程式碼的解釋。不正確的縮排可能會導致 IndentationError 或是改變程式邏輯。
7.2 縮排數量一致
程式碼中每個區塊需要有一致的縮排數量。 所以非常不推薦混用 tab 和空格。 一些編輯器將 tab 顯示為 8 個空格,而另一些則顯示為 4 個空格。這可能產生問題。
PyCharm 很簡單地解決了這個問題:每當你按下鍵盤上的 TAB,PyCharm 自動插入 4 個空格。沒有 tab 字元,就沒有問題。
範例:
錯誤範例 | 正確範例 |
|
|
當有多層巢狀的 if-語句時,錯誤很容易發生:
錯誤範例 | 正確範例 |
|
|
你需要清楚地了解每個 else
對應的 if
,否則你很可能錯誤地安排縮排,造成程式執行的結果與預期不同。
這種錯誤尤其常見於新手,當他們嘗試將一段現有的程式碼移到 if
之後,或者將程式碼區塊移到其他地方,但那裡需要不同的縮排數量。
使用 PyCharm:這個 IDE 非常了解這些問題,並能在你移動程式碼時自動調整縮排到正確的數量。
GO TO FULL VERSION