當前位置:成語大全網 - 新華字典 - python中縮進是什麽

python中縮進是什麽

python中縮進是什麽

要求嚴格的代碼縮進是python語法的壹大特色,就像C語言家族(C、C++、Java等等)中的花括號壹樣重要,在大多數場合還非常有必要。在很多代碼規範裏面也都有要求代碼書寫按照壹定的規則進行換行和代碼縮進,但是這些要求只是純粹是方便人(程序員)來閱讀、使用或修改的,對於編譯器或者解釋器而言,完全是視而不見的。

但是對Python解釋器而言,每行代碼前的縮進都有語法和邏輯上的意義。Python的這個特性,也經常在Python使用者和非Python使用者中引起爭論。

實際上,python這種強制的代碼縮進,就像壹把雙刃劍,有好處也有壞處。顯然,好處在於在嚴格要求的代碼縮進之下,代碼非常整齊規範,賞心悅目,提高了可讀性,在壹定程度上也提高了可維護性。

但是Python嚴格的代碼縮進,對於從其他語言轉過來的人,由於現在計算機和相關專業第壹門語言壹般都是C/C++或Java,他們的語法風格基本是壹致的,所以可能要壹段時間來適應。python代碼縮進十分嚴格,如果不按其規則書寫代碼,就可能會出現語法錯誤,例如unexpected indent之類的,甚至有時也會出現邏輯錯誤。

以C語言作為比較:

如下代碼段:

if(True)

{

x=1;//語句1

y=2;//語句2

}在C語言中,以大括號“{}”作為代碼塊的標識,上面的“語句1”“語句2”就是屬於“if ”條件語句的代碼塊,在大括號中,不用考慮語句的縮進,只要語句在“if”的大括號中,那它就屬於“if”的代碼塊。但是為了提高代碼的可閱讀性,壹般都要求有格式良好的縮進!

在python中,由於代碼縮進而出現語法錯誤或邏輯錯誤,壹般有兩種情況:壹是混用tab和空格縮進,二是編輯器對縮進的處理各異。這裏給出壹個例子,代碼是這樣的:

def test():

——if True:

————print("a")

——else:

————print("b")

.....print("c")在上面代碼中,我用“——”表示壹個“TAB”鍵,用“.”表示壹個空格。壹般情況下會認為上面會輸出a,但實際輸入ac,這是用Notepad++這類編輯器會出現的情況,原因是TAB鍵被編輯器當作4個空格了,所以看起來對其的代碼,在編輯器翻譯之後卻不再屬於同壹個代碼塊,因為縮進不壹樣!但是在pycharm中,按照上面的書寫方式,可以輸出預期的結果,可能是pycharm把壹個TAB當成兩個空格的原因。