在python中,強(qiáng)制要求縮進(jìn),一般使用Tab或空格來進(jìn)行縮進(jìn),且縮進(jìn)必須要保持一致,否則可能會(huì)出縮進(jìn)的錯(cuò)誤。官方規(guī)定是縮進(jìn)四個(gè)空格,而Tab鍵不一定等于四個(gè)空格,所以需要設(shè)置一個(gè)tab等于四個(gè)空格。
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比大通網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式大通網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋大通地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。
要求嚴(yán)格的代碼縮進(jìn)是Python語法的一大特色,好比C語言中的花括號(hào)一樣重要,在大多數(shù)場(chǎng)合還非常有必要。在很多代碼規(guī)范里面也都有要求代碼書寫按照一定規(guī)則進(jìn)行換行和代碼縮進(jìn),但是這些要求只是純粹是方便人來閱讀、使用或修改的,對(duì)于編譯器或者解釋器而言,完全是視而不見的存在。
但是對(duì)Python解釋器而言,每行代碼前的縮進(jìn)都是語法和邏輯上的意義;Python這個(gè)特性,也經(jīng)常在Python使用者和非Python使用者中引起爭(zhēng)論。
與其他語言不同,Python屬于強(qiáng)制縮進(jìn)的,它這種做法屬于雙刃劍,有好處也有壞處。
好處是強(qiáng)迫你寫出格式化的代碼,但沒有規(guī)定縮進(jìn)是幾個(gè)空格還是Tab。按照約定俗成的管理,應(yīng)該始終堅(jiān)持使用四個(gè)空格的縮進(jìn)。
另一個(gè)好處是強(qiáng)迫你寫出縮進(jìn)較少的代碼,你會(huì)傾向于將一段很長(zhǎng)的代碼拆分成若干函數(shù),從而得到縮進(jìn)較少的代碼。
壞處就是復(fù)制、粘貼功能失效了,這是非常不友好的地方。當(dāng)你重構(gòu)代碼時(shí),粘貼過去的代碼必須重新檢查縮進(jìn)是否正確;此外,IDE很難像格式化Java代碼那樣格式化python代碼。
務(wù)必注意:python程序是區(qū)分大小寫的,如果寫錯(cuò)了大小寫,程序會(huì)報(bào)錯(cuò)。
python使用縮進(jìn)來組織代碼塊,請(qǐng)務(wù)必遵守約定俗成的習(xí)慣,堅(jiān)持使用4個(gè)空格的縮進(jìn)。在文本編輯器中,需要設(shè)置把Tab自動(dòng)轉(zhuǎn)換為4個(gè)空格,確保不混用tab和空格。
對(duì)于類定義、函數(shù)定義、流程控制語句、異常處理語句等,行尾的冒號(hào)和下一行的縮進(jìn),表示下一個(gè)代碼塊的開始,而縮進(jìn)的結(jié)束則表示此代碼塊的結(jié)束。通常情況下都是采用4個(gè)空格長(zhǎng)度作為一個(gè)縮進(jìn)量(一個(gè)Tab鍵就表示4個(gè)空格)。
和其他程序設(shè)計(jì)語言(如Java、C語言)采用大括號(hào)“{}”分隔代碼塊不同,Python采用代碼縮進(jìn)和冒號(hào)( : )來區(qū)分代碼塊之間的層次。
在Python中,對(duì)于類定義、函數(shù)定義、流程控制語句、異常處理語句等,行尾的冒號(hào)和下一行的縮進(jìn),表示下一個(gè)代碼塊的開始,而縮進(jìn)的結(jié)束則表示此代碼塊的結(jié)束。
注意,Python中實(shí)現(xiàn)對(duì)代碼的縮進(jìn),可以使用空格或者Tab鍵實(shí)現(xiàn)。但無論是手動(dòng)敲空格,還是使用Tab鍵,通常情況下都是采用4個(gè)空格長(zhǎng)度作為一個(gè)縮進(jìn)量(默認(rèn)情況下,一個(gè)Tab鍵就表示4個(gè)空格)。
例如,下面這段代碼中(涉及到了目前尚未學(xué)到的知識(shí),初學(xué)者無需理解代碼含義,只需體會(huì)代碼塊的縮進(jìn)規(guī)則即可):
height=float(input("輸入身高:")) #輸入身高
weight=float(input("輸入體重:")) #輸入體重
bmi=weight/(height*height) #計(jì)算BMI指數(shù)
#判斷身材是否合理
if bmi18.5:
#下面 2 行同屬于 if 分支語句中包含的代碼,因此屬于同一作用域
print("BMI指數(shù)為:"+str(bmi)) #輸出BMI指數(shù)
print("體重過輕")
if bmi=18.5 and bmi24.9:
print("BMI指數(shù)為:"+str(bmi)) #輸出BMI指數(shù)
print("正常范圍,注意保持")
if bmi=24.9 and bmi29.9:
print("BMI指數(shù)為:"+str(bmi)) #輸出BMI指數(shù)
print("體重過重")
if bmi=29.9:
print(BMI指數(shù)為:"+str(bmi)) #輸出BMI指數(shù)
print("肥胖")
Python對(duì)代碼的縮進(jìn)要求非常嚴(yán)格,同一個(gè)級(jí)別代碼塊的縮進(jìn)量必須一樣,否則解釋器會(huì)報(bào)SyntaxError異常錯(cuò)誤。例如,對(duì)上面代碼做錯(cuò)誤改動(dòng),將位于同一作用域中的2行代碼,它們的縮進(jìn)量分別設(shè)置為4個(gè)空格和3個(gè)空格,如下所示:
if bmi18.5:
print("BMI指數(shù)為:"+str(bmi)) #輸出BMI指數(shù)
print("體重過輕")
對(duì)于Python縮進(jìn)規(guī)則,初學(xué)者可以這樣理解,Python要求屬于同一作用域中的各行代碼,它們的縮進(jìn)量必須一致,但具體縮進(jìn)量為多少,并不做硬性規(guī)定。
是強(qiáng)制的,縮進(jìn)是Python必需的,指定了一個(gè)代碼塊;循環(huán)、類、函數(shù)等中的所有代碼都在縮進(jìn)塊中指定,通常使用四個(gè)空格字符來完成;如果您的代碼沒有必要縮進(jìn),它將無法準(zhǔn)確執(zhí)行并且也會(huì)拋出錯(cuò)誤。
Python程序中,縮進(jìn)表達(dá)所屬關(guān)系,在縮進(jìn)的前一行最后,需要使用英文冒號(hào) :? 符號(hào)。
縮進(jìn)在python代碼中的重要性,縮進(jìn)不規(guī)范程序就不能運(yùn)行。這也是python比其他編程語言簡(jiǎn)單的地方,用縮進(jìn)來替代各種范圍符號(hào),可以減少了代碼的輸入,而縮進(jìn)前一行則需要使用英文冒號(hào)來表示下方為需要縮進(jìn)的的代碼塊,例如:
for i in range(1,20):
print i
with open ("a.txt") as f:
print f.readlines()
擴(kuò)展資料
python縮進(jìn)非常重要,是用來界定代碼塊的,相當(dāng)于其他編程語言里的大括號(hào)。
python中有時(shí)候會(huì)從別處復(fù)制粘貼案例代碼,在本地運(yùn)行后會(huì)報(bào)錯(cuò),需要注意的是通常遇到的縮進(jìn)錯(cuò)誤有三種:
1、代碼前后縮進(jìn)量不一致
2、代碼前后縮進(jìn)符號(hào)不一致
3、tab與space混用
你學(xué)過編程嗎?一般語言都是通過{}來標(biāo)識(shí)代碼塊的,而在python中,是通過縮進(jìn)來識(shí)別代碼塊的。我一個(gè)一個(gè)的回答你的問題。\x0d\x0a縮進(jìn)幾個(gè)空格或者tab都是可以的,只要你保持一致就可以。不過為了別人閱讀方便,還是用tab或者4個(gè)空格比較好。\x0d\x0a行開頭的空格才算縮進(jìn)。\x0d\x0a當(dāng)需要書寫子代碼塊時(shí),用縮進(jìn)。\x0d\x0a你要知道縮進(jìn)的用途,它是用來標(biāo)識(shí)不同的代碼塊的,通過不同的縮進(jìn)來判斷代碼行之間的關(guān)系。\x0d\x0a\x0d\x0aif,while,for,def行之后的行首的空格都是縮進(jìn)。
直接使用4個(gè)空格或tab縮進(jìn),但不要混用(像用IDLE這樣的會(huì)把tab自動(dòng)變成4個(gè)空格的當(dāng)我沒說)