“專業人士筆記”系列目錄:
創帆雲:Python成為專業人士筆記--強烈建議收藏!每日持續更新!zhuanlan.zhihu.com
python中的空白tab縮進
Python使用縮進來定義控制和循環結構,這有助于提高Python的可讀性,但是,它要求程式員密切注意空格縮進的使用:因為,編輯器錯誤的校準可能會導緻代碼出現意想不到的行為。
Python使用冒号(:)和縮進來顯示代碼塊的開始和結束位置(如果你使用過其他另一種語言,請不要将其與三元運算符相混淆)。
也就是說,Python中的塊,如函數、循環、if子句和其他結構,沒有專門結束辨別符,所有塊都以冒号開頭,然後包含它下面的對應縮進後的子代碼行。
例如:
def my_function(): # 這是一個函數定義。注意冒号(:)
a = 2
return a
# 上面2行屬于這個函數,因為它是Tab縮進的,傳回 return 這一行也屬于同一個函數
print(my_function())
#這行代碼不屬于函數,因為沒有用Tab進行縮進
或者:
if a > b: # If 語句開始于這裡
print(a)
#屬于if裡一部分
else: # else 語句和if是同一級
print(b)
#屬于else裡面的子語句
隻包含一行語句的塊可以放在同一行上,盡管這種形式通常被認為是不好的代碼習慣:
if a > b: print(a)
else: print(b)
嘗試使用多個語句來實作這一點是行不通的:
if x > y: y = x
print(y)
# IndentationError: unexpected indent 未知的間隔
if x > y: while y != z: y -= 1
SyntaxError: invalid syntax 文法錯誤
空塊會導緻IndentationError錯誤。當您有一個沒有内容的塊時,使用pass(一個什麼都不做的指令) :
def will_be_implemented_later():
pass
Spaces(空格) 對比. Tabs(制表符)
簡而言之:
始終使用4個空格作為縮進,隻使用制表符當然也可以,但是Python代碼的樣式指南PEP 8中聲明空格是首選的(但我個人覺得很麻煩,我一般都用Tab)。
Python 3不允許混合使用制表符和空格進行縮進,在這種情況下,會産生編譯時錯誤 : 在縮進中不一緻地使用制表符和空格,程式将無法運作。
Python 2允許在縮進中混合制表符和空格,但強烈不建議這樣做。制表符完成前面的縮進操作,會變成8個空格的倍數,由于編輯器通常被配置為以4個空格的倍數顯示頁籤,這可能會導緻一些細微的錯誤。
許多編輯器都有“制表符到空格”的配置。在配置編輯器時,應該區分制表符(‘t’)和制表鍵:制表符應該配置為顯示8個空格,以比對語言語義——至少在可能出現(意外)混合縮進的情況下, 編輯器還可以自動将制表符轉換為空格 。
然而,往往直接将編輯器中的Tab鍵配置為自動插入4個空格,而不是插入制表符,這樣更符合python程式開發中的簡便性要求
用制表符和空格混合編寫的Python源代碼,或者使用非标準數量的縮進空格,可以使用autopep8(大多數Python安裝都提供了一個不太強大的替代方案:reindent.py包來處理這個問題)
綜上,我個人建議,對于具體替代方案不用做過多研究,隻要在pycharm這樣的開發環境中,用tab鍵縮進代碼即可,編譯能通過,大部分情況下是沒有問題的。
今天分享就到這裡,
禁止任何形式轉載,違者必究