password = raw_input("Enter password: ")
if password == "1234":
print "You logged in correctly!"
else:
print "GTFO"
다른 들여 쓰기를했지만 코드가 잘 작동하지 않지만 알아낼 수 없습니다.다른 들여 쓰기 파이썬에서 오류 없음
이 IndentationError 같은 것으로 표시되지 않습니다password = raw_input("Enter password: ")
if password == "1234":
print "You logged in correctly!"
else:
print "GTFO"
다른 들여 쓰기를했지만 코드가 잘 작동하지 않지만 알아낼 수 없습니다.다른 들여 쓰기 파이썬에서 오류 없음
이 IndentationError 같은 것으로 표시되지 않습니다, 문장의 블록을 사인 인이 임대에 if
및 else
두 개의 서로 다른 블록은 당신의 여기 들여 쓰기
의 한 공간을 가지고있다, 그래서 인터프리터가 발생합니다 그래서 어쨌든 들여되었다 나는 다음과 같은 시도하는 경우이 문제없이 작동합니다
if True:
print
elif True:
print
elif True:
print
elif True:
print
else:
print
오류가
그러나 나는 얻을 것이다 IndendationError
if True:
print ""
print "" # has different Indentation
print ""
The Python documentation은 들여 쓰기를 설명합니다. 관련 발췌 부분은 다음과 같습니다.
각 논리 라인의 시작 부분에서 라인의 들여 쓰기 레벨은 스택의 상단에 비해 입니다. 동일하면 아무 일도 일어나지 않습니다. 이 크면 스택에 푸시되고 하나의 인덱스 토큰은 입니다. 이 작은 경우 들여 쓰기 수준, 그것은 처리 (
0
입니다) 스택의 상단보다 크기 때문에, 그것은 , 스택 코드에서
에 발생 숫자 중 하나 여야합니다 하나의 들여 쓰기로. else:
행은 스택 상단에서 2
을 팝했습니다. 따라서 인터프리터에는 이전 들여 쓰기 수준이 2
인 메모리가 없습니다. 그것은 그것이 0
보다 높은 것을 알고 있습니다.
def foo():
if True:
return True
return False # Is this part of the if statement or not?
파서가 return False
에 도달, 스택 [4, 8]
을 포함 : 당신이 블록 내에서 들여 쓰기를 혼합 시작할 때
문제가 발생한다. 다음 줄은 들여 쓰기가 6
이며 스택에 포함되어 있지 않으므로 IndentationError
을 생성합니다.
+1 –
왜 그렇게 다른 들여 쓰기가 필요하면 오류가 발생합니다! – drj
그는 그가 들여 쓰기의 다른 수준에 있다는 것을 의미한다고 생각합니다. '공간'(길이)과 '탭'의 차이점이 없습니다 –
@drj : 문서를 읽으십시오. http://docs.python.org/3/reference/lexical_analysis.html#indentation – Blender