本篇文章給大家分享的是有關(guān)python縮進(jìn)一般是幾個(gè)字符,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)建站是專業(yè)的楊浦網(wǎng)站建設(shè)公司,楊浦接單;提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行楊浦網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
我們先來看一個(gè)正確的縮進(jìn)案例:
def perm(l):#0 # Compute the list of all permutations of l if len(l) <= 1:# 1 return [l]# 2 r = []# 3 for i in range(len(l)):# 4 s = l[:i] + l[i+1:]# 5 p = perm(s)# 6 for x in p:# 7 r.append(l[i:i+1] + x)# 8 return r# 9
Python中的縮進(jìn)決定了代碼的作用域范圍。這一點(diǎn)和傳統(tǒng)的c/c++有很大的不同(傳統(tǒng)的c/c++使用花括號花括號{}符決定作用域的范圍;python使用縮進(jìn)空格來表示作用域的范圍,相同縮進(jìn)行的代碼是處于同一范圍)。
每行代碼中開頭的空格數(shù)(whitespace)用于計(jì)算該行代碼的縮進(jìn)級別(Indentation level),注意一個(gè)Tab會(huì)被替換為1~8個(gè)Space(具體的空格數(shù)量,不同的編譯器有不同的數(shù)量),縮進(jìn)級別為0表示無縮進(jìn)空格。
在一個(gè)源文件不建議同時(shí)使用空格和制表縮進(jìn)符,當(dāng)使用別人代碼的時(shí)候幾乎是不可能知道別人使用的是空格還是制表符,這時(shí)最好統(tǒng)一縮進(jìn),在IDEL編輯器中可以使用 Edit > Untabify Region 將任何制表符轉(zhuǎn)化為空格。
Python中的每一條語句都有一個(gè)縮進(jìn)級別,并且縮進(jìn)級別會(huì)使用棧的數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ)。在開始讀取文件之前,0(表示縮進(jìn)級別為0,無縮進(jìn))會(huì)被首先壓入棧中。然后從文件開頭到末尾,依次讀取每行邏輯代碼,每行邏輯代碼的縮進(jìn)級別都會(huì)和棧頂值進(jìn)行比較,如果相等,那么什么都不會(huì)發(fā)生;如果比棧頂值大的話,那么該行邏輯代碼的縮進(jìn)級別就會(huì)被壓入棧中,同時(shí)會(huì)生成一個(gè)縮進(jìn)標(biāo)記(INDENT TOKEN);如果比棧頂值小的話,那么棧中所有比該行邏輯代碼縮進(jìn)級別大的值都會(huì)從棧中移除,并且還會(huì)生成一個(gè)擴(kuò)展標(biāo)記(DEDENT TOKEN)。
上面的#0行,縮進(jìn)0個(gè)字符,由于文件讀取之前0已經(jīng)被壓入棧中了,所以棧中的數(shù)據(jù)不會(huì)發(fā)生改變。#1縮進(jìn)4個(gè)字符,4被壓入棧中。#2縮進(jìn)18個(gè)字符,18被壓入棧中。#3縮進(jìn)4個(gè)字符,18被彈出棧,棧頂值又為4了。#4和#3縮進(jìn)一樣,所以不更新棧數(shù)據(jù)。#5縮進(jìn)13個(gè)字符,所以13被壓入棧中。#5、#6和#7的縮進(jìn)一樣,不更新棧數(shù)據(jù)。#8縮進(jìn)14個(gè)字符,14被壓入棧中。#9的縮進(jìn)4個(gè)字符,所以棧中的13和14都會(huì)彈出,棧頂值又恢復(fù)為4。
錯(cuò)誤的案例
if True: print("hello girl") else: print("hello boy") print("end")
最后一行代碼的縮進(jìn)級別是1,而且比上一行代碼的縮進(jìn)級別小,所以應(yīng)該出棧處理,但是在出站的時(shí)候找不到棧中以前有1的級別,所以報(bào)錯(cuò)。修改這個(gè)錯(cuò)誤,只需要將最后一行的空格去掉就可以。
以上就是python縮進(jìn)一般是幾個(gè)字符,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。