본문 바로가기
카테고리 없음

IndentationError vs TabError: 파이썬 들여쓰기 오류 총정리

by vibespace 2025. 4. 12.

파이썬에서 들여쓰기 오류란?

파이썬은 들여쓰기를 통해 코드 블록을 구분하는 언어입니다. 이는 가독성을 높이는 장점이 있지만, 들여쓰기가 조금만 틀려도 오류가 발생할 수 있습니다. 대표적인 오류가 바로 IndentationErrorTabError입니다.

이 글에서는 두 오류의 차이점, 발생 원인, 그리고 해결법까지 파이썬 들여쓰기 오류를 완벽하게 정리해 드립니다.

IndentationError란 무엇인가?

IndentationError는 들여쓰기가 전혀 맞지 않거나 문법적으로 필요한 위치에 들여쓰기가 없는 경우 발생합니다. 파이썬은 if, for, while, def 등과 같은 문 뒤에는 반드시 들여쓰기가 따라와야 합니다.


def say_hello():
print("Hello, world!")

위 코드는 IndentationError: expected an indented block를 발생시킵니다. def 뒤에는 들여쓰기가 필요한데, 그렇지 않아 오류가 생긴 것입니다.

TabError란 무엇인가?

TabError들여쓰기에 공백(space)과 탭(tab)을 혼용했을 때 발생하는 오류입니다. 코드상 보기에는 들여쓰기가 맞는 것처럼 보여도, 파이썬은 일관된 들여쓰기 문자를 요구합니다.


def greet():
    print("Hello")  # 4 spaces
	print("World")  # 1 tab

이 코드는 다음과 같은 오류를 발생시킵니다:


TabError: inconsistent use of tabs and spaces in indentation

IndentationError와 TabError의 차이점

  • IndentationError: 들여쓰기가 빠지거나 문법적으로 잘못된 위치에 있음
  • TabError: 들여쓰기에 tab과 space가 혼합되어 있어 파이썬이 해석하지 못함

즉, IndentationError는 구조적 문제, TabError는 형식적 문제에 가깝습니다.

파이썬에서 들여쓰기를 올바르게 작성하는 방법

다음은 들여쓰기 오류를 방지하는 실전 팁입니다.

  • 한 가지 들여쓰기 방법만 사용하세요 (추천: 공백 4칸)
  • 코드 편집기에서 탭 → 공백 변환 기능을 활성화하세요
  • VS Code, PyCharm 같은 IDE에서는 자동 들여쓰기 기능을 활용하세요
  • 혼용 여부를 감지해주는 린트 도구 (예: flake8, pylint)를 사용하세요

실제 예시로 보는 들여쓰기 오류 해결

1. IndentationError 해결


# 잘못된 코드
for i in range(3):
print(i)

→ 올바른 코드:


for i in range(3):
    print(i)

2. TabError 해결


def message():
    print("Start")  # 공백
	print("End")     # 탭

→ 올바른 코드:


def message():
    print("Start")
    print("End")

탭과 스페이스의 차이는 어떻게 확인할까?

들여쓰기에 문제가 있는 경우, 눈으로는 차이를 보기 어렵습니다. 이럴 때는 코드 편집기의 설정을 활용해 탭/공백을 시각화하세요.

  • VS Code: View > Render Whitespace 설정
  • PyCharm: View > Show Whitespaces
  • Linux/Mac 터미널: cat -T 파일.py로 확인 가능

정리: 파이썬 들여쓰기 오류는 조심해야 할 기본기

IndentationError와 TabError는 파이썬 초보자부터 고급 개발자까지 자주 마주치는 오류입니다. 두 오류는 비슷해 보이지만 원인과 해결법이 다르므로 정확히 이해하는 것이 중요합니다.

들여쓰기를 일관되게 사용하고, 코딩 도구의 도움을 받으면 이런 문제를 쉽게 예방할 수 있습니다. 파이썬의 문법 특성을 이해하고, 오늘 소개한 팁들을 활용해 들여쓰기 오류 없는 깔끔한 코드를 작성해보세요!