Python IndentationError: 들여쓰기가 외부 들여쓰기 수준과 일치하지 않습니다.
- Python의 들여쓰기 규칙
-
Python에서
IndentationError
의 원인 -
Python에서
IndentationError: unindent가 외부 들여쓰기 수준과 일치하지 않음
을 수정합니다.
이 기사에서는 코드 실행 중 발생하는 IndentationError
를 해결하는 방법에 대해 알아봅니다. 이 오류가 발생하는 여러 가지 이유를 살펴보겠습니다.
또한 Python에서 이 오류를 해결하는 방법을 찾을 것입니다. Python에서 IndentationError
가 무엇인지부터 시작하겠습니다.
Python의 들여쓰기 규칙
들여쓰기는 Python 언어의 필수 부분입니다. 코드에서 코드 블록을 정의하는 것은 들여쓰기에 따라 다릅니다.
들여쓰기는 공백과 탭을 모두 사용하여 수행할 수 있습니다. 들여쓰기 때문에 개발자가 코드의 흐름을 파악하기가 매우 쉽습니다.
특정 메서드/조건이 시작하고 끝나는 위치를 쉽게 찾을 수 있습니다.
Python에서 IndentationError
의 원인
스페이스와 탭 모두 사용
Python 코드에서 들여쓰기에 공백과 탭을 모두 사용하면 IDE에서 IndentationError
가 발생합니다. 이것은 일반적으로 이러한 오류의 경우이지만 일부 코드 청크에서 들여쓰기를 사용하지 못한 경우에도 발생할 수 있습니다.
위에서 언급했듯이 코드를 들여쓰는 방법에는 탭 또는 공백의 두 가지가 있습니다. Python에서 모든 들여쓰기 수준의 표준은 공백 4개 또는 탭 1개입니다.
이 들여쓰기 방식은 Python의 법칙이지만, 이 들여쓰기로 인해 코드 구성을 추적할 수 있는 Python 개발자를 위한 시각적 보조 도구이기도 합니다.
예제 코드:
def exploring_indentation():
number = 9
if number == 9:
print("Indentation works like this!")
exploring_indentation()
코드 출력:
Indentation works like this!
코드의 추가 들여쓰기로 인한 들여쓰기 오류
IndentationError
의 또 다른 이유는 아래 예제 코드와 같이 추가 들여쓰기가 추가되었기 때문일 수 있습니다.
예제 코드:
def exploring_indentation():
number = 9
if number == 9:
print("Indentation works like this!")
else:
print("this is an example of an unnecessary indent")
exploring_indentation()
코드 출력:
File "<tokenize>", line 5
else:
^
IndentationError: unindent does not match any outer indentation level
코드의 else
부분은 들여쓰기가 잘못되었기 때문에 if
조건 안에 있습니다.
Python에서 IndentationError: unindent가 외부 들여쓰기 수준과 일치하지 않음
을 수정합니다.
스페이스와 탭의 일관된 사용
들여쓰기 소리를 추적하는 것은 충분히 지루하지만 들여쓰기를 추적하는 데 도움이 되는 기능이 내장된 PyCharm 및 VS Code와 같은 코드 편집기가 있습니다.
코드를 작성하는 동안 Enter 키를 눌러 다음 줄로 이동하면 편집기가 다음 코드 줄을 자동으로 들여씁니다.
또한 코드에서 탭과 공백을 혼합하는 경우 항상 탭을 공백으로 또는 그 반대로 변환하는 옵션을 찾을 수 있습니다.
예를 들어, PyCharm에서 왼쪽 상단 모서리에 있는 편집
으로 이동하여 들여쓰기 변환
옵션을 선택하고 요구 사항에 따라 탭으로
또는 공백으로
를 선택해야 합니다.
바깥쪽 들여쓰기 수준 일치
예제에 제공된 아래 코드에서 if
및 elif
문은 들여쓰기 없이 할당됩니다. 동시에 else
문에 추가 들여쓰기가 할당됩니다.
외부 수준의 추가 들여쓰기로 인해 Python 컴파일러는 else
문을 인식할 수 없으므로 IndentationError
를 제공합니다(들여쓰기가 외부 들여쓰기 수준과 일치하지 않음).
예제 코드:
a = int(input("Enter an integer A: "))
b = int(input("Enter an integer B: "))
if b > a:
print("B is greater than A")
elif a == b:
print("A and B are equal")
else:
print("A is greater than B")
코드 출력:
File "<string>", line 7
else:
^
IndentationError: unindent does not match any outer indentation level
올바른 예제 코드:
a = int(input("Enter an integer A: "))
b = int(input("Enter an integer B: "))
if b > a:
print("B is greater than A")
elif a == b:
print("A and B are equal")
else:
print("A is greater than B")
이러한 문제는 들여쓰기와 같은 사소한 실수에 대한 걱정 없이 프로그래밍 경험을 향상시키기 위해 특별히 만들어졌기 때문에 Python 관련 편집기에서 쉽게 해결할 수 있습니다.
그러나 IDE와 같은 메모장을 사용하는 경우 코드를 실행할 때까지 이러한 오류를 지적하지 않기 때문에 탭과 공백에 주의하고 들여쓰기를 아주 세세하게 추적하는 것이 좋습니다.
이 기사가 Python에서 IndentationError
를 수정하는 방법을 이해하는 데 도움이 되기를 바랍니다.
My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.
LinkedIn관련 문장 - Python Error
- AttributeError 수정: Python에서 'generator' 객체에 'next' 속성이 없습니다.
- AttributeError 해결: 'list' 객체 속성 'append'는 읽기 전용입니다.
- AttributeError 해결: Python에서 'Nonetype' 객체에 'Group' 속성이 없습니다.
- AttributeError: 'Dict' 객체에 Python의 'Append' 속성이 없습니다.
- AttributeError: 'NoneType' 객체에 Python의 'Text' 속성이 없습니다.
- AttributeError: Int 객체에 속성이 없습니다.