Python에서 '예기치 않은 들여쓰기' 오류란?
Python은 다른 많은 프로그래밍 언어와 달리 중괄호({}) 대신 들여쓰기(indentation)로 코드 블록을 구분합니다. 따라서 Python은 들여쓰기를 단순한 스타일이 아닌 문법의 일부로 취급하며, 들여쓰기가 존재하는 것뿐만 아니라 일관성 있는 들여쓰기까지 엄격하게 요구합니다.
예를 들어 한 줄을 공백 4칸으로 들여썼는데, 바로 다음 줄을 공백 3칸(또는 5칸, 6칸 등)으로 들여쓰면 IndentationError: unexpected indent 오류가 발생합니다.
오류가 발생하는 이유
문제가 되는 코드에서는 세 번째 줄이 두 번째 줄보다 시작 부분에 더 많은 공백을 포함하고 있습니다. Python에서는 같은 블록에 속한 모든 코드 줄이 정확히 동일한 수의 공백으로 시작해야 합니다. 즉, 두 개의 print 문은 반드시 같은 칸수로 들여쓰기되어야 합니다.
해결 방법
블록 내 모든 줄의 들여쓰기를 동일하게 맞추면 오류 없이 정상적으로 실행됩니다. 아래는 수정된 코드입니다.
def a():
print("foo")
print("baz")
들여쓰기 오류를 예방하는 팁
- PEP 8 스타일 가이드에서 권장하는 공백 4칸 들여쓰기를 사용하세요.
- 탭(tab)과 공백(space)을 혼용하지 마세요. 겉보기에는 같아 보여도 Python은 이를 다르게 인식합니다.
- 에디터 설정에서 탭 키 입력 시 자동으로 공백 4칸으로 변환되도록 구성하면 실수를 줄일 수 있습니다.