Python のインデントは、コードの範囲を決定します。これは従来の c/c とは大きく異なります (従来の c/c は中括弧 {} を使用してスコープのスコープを決定します。Python ではインデントされたスペースを使用してスコープのスコープを示し、同じインデントされたコード行が同じ行内にあります)。範囲)。
コードの各行の先頭にあるスペース (空白) の数は、コード行のインデント レベル (インデント レベル) を計算するために使用されます。タブは 1 ~ 8 個のスペースに置き換えられることに注意してください。 (スペースの特定の数。コンパイラによって数値は異なります)。インデント レベル 0 は、インデントされたスペースがないことを意味します。
ソース ファイル内でスペースとタブ インデント文字を同時に使用することはお勧めできません。他の人のコードを使用する場合、他の人がスペースとタブのどちらを使用しているかを知ることはほとんど不可能です。この場合、統一されたインデントを使用するのが最善です。IDEL エディターで [編集] > [領域のタブ化解除] を使用して、タブ文字をスペースに変換できます。
Python のすべてのステートメントにはインデント レベルがあり、インデント レベルはスタック データ構造を使用して保存されます。ファイルの読み取りを開始する前に、最初に 0 (インデント レベル 0、インデントなしを意味します) がスタックにプッシュされます。次に、論理コードの各行をファイルの最初から最後まで順番に読み取ります。論理コードの各行のインデント レベルがスタックの先頭の値と比較されます。それらが等しい場合は何も起こりません。この値がスタックの先頭の値より大きい場合は、論理コード行のインデント レベルがスタックにプッシュされ、インデント トークン (INDENT TOKEN) が生成されます。値がその値より小さい場合は、スタックの最上位にあると、論理コード行のインデント レベルよりも大きいスタック内のすべてのインデント レベルが生成され、その値がスタックから削除され、拡張トークン (DEDENT TOKEN) が生成されます。
以下は正しいインデントの場合です:
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
以下は間違ったインデントの場合です
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
以上がPython のインデント規則は何と呼ばれますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。