天天看點

python 全部縮進一行_Python成為專業人士筆記–程式行空白及tab縮進的作用

python 全部縮進一行_Python成為專業人士筆記–程式行空白及tab縮進的作用

“專業人士筆記”系列目錄:

創帆雲:Python成為專業人士筆記--強烈建議收藏!每日持續更新!​zhuanlan.zhihu.com

python 全部縮進一行_Python成為專業人士筆記–程式行空白及tab縮進的作用

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鍵縮進代碼即可,編譯能通過,大部分情況下是沒有問題的。

今天分享就到這裡,

禁止任何形式轉載,違者必究

繼續閱讀