파이썬에서는 들여쓰기(Indentation)에 따라 코드의 범위가 결정됩니다. 이는 전통적인 c/C++와 매우 다릅니다(기존 c/C++는 중괄호 {}를 사용하여 범위의 범위를 결정합니다. Python은 들여쓰기된 공백을 사용하여 범위의 범위를 나타내며 동일한 들여쓰기된 코드 줄은 동일한 범위에 있습니다). ).
각 코드 줄 시작 부분의 공백(공백) 수는 코드 줄의 들여쓰기 수준(들여쓰기 수준)을 계산하는 데 사용됩니다. 탭은 1에서 1로 대체됩니다. 공백 8개(특정 공백 번호, 컴파일러마다 번호가 다름), 들여쓰기 수준이 0이면 들여쓰기 공백이 없음을 의미합니다.
소스 파일에서 공백과 탭 들여쓰기 문자를 동시에 사용하는 것은 권장되지 않습니다. 통일하는 것이 가장 좋습니다. 들여쓰기의 경우 IDEL 편집기에서 Edit > Untabify Region을 사용하여 모든 탭 문자를 공백으로 변환할 수 있습니다.
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
위 내용은 파이썬 들여쓰기 규칙은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!