Computer >> 컴퓨터 >  >> 문제 해결 >> Windows 오류

Python 들여쓰기 오류(Indentation Error) 원인과 해결 방법 완벽 가이드

Python은 1991년 처음 공개된 프로그래밍 언어로, 방대하고 포괄적인 라이브러리를 자랑하며 함수형, 명령형, 절차지향, 객체지향 등 다양한 프로그래밍 패러다임을 지원합니다.

Python 들여쓰기 오류(Indentation Error) 원인과 해결 방법 완벽 가이드

'Indentation Error: Expected an indented block' 오류는 초보자든 숙련된 개발자든 누구에게나 발생할 수 있습니다. Python은 모든 코드의 구조를 올바른 공백(들여쓰기)으로 구분하기 때문에, 들여쓰기가 잘못되면 코드가 컴파일되지 않고 오류 메시지가 반환됩니다.

PEP8 컨벤션에 따르면 필요한 위치에는 네 칸의 공백을 사용하는 것이 표준입니다. 모든 개발자가 적절한 들여쓰기를 습관화하면 코드 가독성이 크게 향상됩니다.

Python에서 들여쓰기 오류가 발생하는 원인

앞서 언급했듯이 이 오류는 주로 코드 내 공백 또는 탭의 오류 때문에 발생합니다. Python은 절차적 언어의 특성을 가지고 있어 탭과 공백이 올바른 위치에 배치되지 않으면 이 오류를 경험하게 됩니다. 프로그램이 정상적으로 실행되다가도 인터프리터가 오류를 발견하면 도중에 오류 메시지가 나타날 수 있습니다. 대표적인 원인은 다음과 같습니다.

  • 코드에서 공백과 탭을 혼용하는 경우입니다. 두 방식을 섞어서 사용하면 인터프리터가 어느 것을 기준으로 삼아야 할지 판단하지 못합니다.
  • 들여쓰기를 잘못된 위치에 배치한 경우입니다. 올바른 들여쓰기 규칙이 지켜지지 않으면 반드시 이 오류가 발생합니다.
  • 'if', 'for', 'while' 같은 복합문(compound statement)의 들여쓰기를 잊은 경우입니다.
  • 사용자 정의 함수나 클래스 내부의 들여쓰기를 잊은 경우입니다.

해결 방법 1: 잘못된 공백/탭 확인하기

이 문제에는 즉각적인 해결책이 없습니다. 코드는 본인이 작성한 것이므로 한 줄씩 직접 검토하면서 어디에서 실수했는지 찾아야 합니다. 코드 구조상 여러 개의 블록으로 구성되어 있는데, 예를 들어 'if' 문이 있다면 그 뒤에 따라오는 코드는 반드시 들여쓰기가 필요합니다.

Python 들여쓰기 오류(Indentation Error) 원인과 해결 방법 완벽 가이드

위 다이어그램을 살펴보세요. 중간에 새로운 블록이 추가되더라도 특정 블록의 들여쓰기 수준은 코드 전체에서 동일하게 유지되는 것을 확인할 수 있습니다. 들여쓰기의 일관성을 반드시 지켜야 합니다. 공백을 사용하기로 했다면 항상 공백을, 탭을 사용하기로 했다면 항상 탭을 사용해야 하며, 두 방식을 섞어 사용하면 문제가 발생합니다.

Python 들여쓰기 오류(Indentation Error) 원인과 해결 방법 완벽 가이드

위 예시는 올바른 들여쓰기를 보여줍니다. 먼저 'for' 루프를 보면, 'for' 루프 내부의 모든 코드는 들여쓰기가 적용되어야 합니다. 'for' 루프 안에 'if' 문이 있고, 'if' 문 내부의 코드는 한 단계 더 깊이 들여쓰기 되어야 합니다.

오류 로그를 확인하면 오류가 시작된 줄 번호를 알 수 있으므로, 들여쓰기 오류가 발생한 위치를 손쉽게 파악할 수 있습니다.

해결 방법 2: 에디터에서 탭/공백 기호 표시 활성화하기

모든 개발자가 그렇듯 '감'으로 들여쓰기하는 것이 어렵다면, IDE나 코드 편집기에서 탭/공백 기호 표시 옵션을 활성화해 보세요. 이 옵션을 켜면 코드에 작은 '점(dot)'이 표시되며, 각 점이 하나의 공백 또는 탭을 의미합니다. 이를 활용하면 들여쓰기를 더 정확하게 맞출 수 있고, 불필요한 들여쓰기나 누락된 들여쓰기가 없는지 확인할 수 있습니다.

여기서는 Notepad++를 예로 들어 기호 표시 방법을 알아보겠습니다. 다른 코드 편집기를 사용하고 있다면 해당 프로그램에 맞는 설정을 활성화하면 됩니다.

  1. 보기(View) > 기호 표시(Show Symbol) > 공백과 TAB 표시(Show Whitespace and TAB)를 클릭합니다.Python 들여쓰기 오류(Indentation Error) 원인과 해결 방법 완벽 가이드
  1. 옵션이 활성화되었습니다. 작업 편의를 위해 들여쓰기 가이드(Indent Guide) 옵션도 함께 활성화할 수 있습니다.
Python 들여쓰기 오류(Indentation Error) 원인과 해결 방법 완벽 가이드

위 예시를 확인해 보세요. 각 클래스 뒤에 들여쓰기가 어떻게 적용되었는지 볼 수 있으며, 하나의 점이 하나의 공백을 나타냅니다. 코드의 잘못된 들여쓰기를 수정한 후 다시 실행하여 문제가 해결되었는지 확인하세요.