日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python縮進(jìn)是空格還是tab

Python中的縮進(jìn)(Indentation)決定了代碼的作用域范圍。這一點(diǎn)和傳統(tǒng)的c/c++有很大的不同(傳統(tǒng)的c/c++使用花括號花括號{}符決定作用域的范圍;python使用縮進(jìn)空格來表示作用域的范圍,相同縮進(jìn)行的代碼是處于同一范圍)。

每行代碼中開頭的空格數(shù)(whitespace)用于計(jì)算該行代碼的縮進(jìn)級別(Indentation level),注意一個Tab會被替換為1~8個Space(具體的空格數(shù)量,不同的編譯器有不同的數(shù)量),縮進(jìn)級別為0表示無縮進(jìn)空格。

Python中的每一條語句都有一個縮進(jìn)級別,并且縮進(jìn)級別會使用棧的數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲。在開始讀取文件之前,0(表示縮進(jìn)級別為0,無縮進(jìn))會被首先壓入棧中。然后從文件開頭到末尾,依次讀取每行邏輯代碼,每行邏輯代碼的縮進(jìn)級別都會和棧頂值進(jìn)行比較,如果相等,那么什么都不會發(fā)生;如果比棧頂值大的話,那么該行邏輯代碼的縮進(jìn)級別就會被壓入棧中,同時會生成一個縮進(jìn)標(biāo)記(INDENT TOKEN);如果比棧頂值小的話,那么棧中所有比該行邏輯代碼縮進(jìn)級別大的值都會從棧中移除,并且還會生成一個擴(kuò)展標(biāo)記(DEDENT TOKEN)。

下面是一個正確的縮進(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

上面的#0行,縮進(jìn)0個字符,由于文件讀取之前0已經(jīng)被壓入棧中了,所以棧中的數(shù)據(jù)不會發(fā)生改變。#1縮進(jìn)4個字符,4被壓入棧中。#2縮進(jìn)18個字符,18被壓入棧中。#3縮進(jìn)4個字符,18被彈出棧,棧頂值又為4了。#4和#3縮進(jìn)一樣,所以不更新棧數(shù)據(jù)。#5縮進(jìn)13個字符,所以13被壓入棧中。#5、#6和#7的縮進(jìn)一樣,不更新棧數(shù)據(jù)。#8縮進(jìn)14個字符,14被壓入棧中。#9的縮進(jìn)4個字符,所以棧中的13和14都會彈出,棧頂值又恢復(fù)為4。

下面是一個錯誤的案例

def perm(l):                       #1 error: first line indented
    for i in range(len(l)):             #2 error: not indented
        s = l[:i] + l[i+1:]
            p = perm(l[:i] + l[i+1:])   #3 error: unexpected indent
            for x in p:
                    r.append(l[i:i+1] + x)#4
                return r                #5 error: inconsistent dedent

#1、#2和#3處的錯誤解釋的很清楚了。#5的縮進(jìn)級別在棧中找不到所以出錯,#5處的縮進(jìn)級別是14,比它的上面一行縮進(jìn)級別18,所以在

#5處應(yīng)該進(jìn)行出棧處理,但是在棧中找不到14這個級別,所以出錯

python學(xué)習(xí)網(wǎng),免費(fèi)的python學(xué)習(xí)網(wǎng)站,歡迎在線學(xué)習(xí)!


文章名稱:創(chuàng)新互聯(lián)Python教程:python縮進(jìn)是空格還是tab
當(dāng)前路徑:http://www.dlmjj.cn/article/djpoehj.html