Python 들여쓰기 오류: 들여쓰기가 외부 들여쓰기 수준과 일치하지 않습니다.

ItsMyCode |

Python에서 들여쓰기는 중요하며 코드를 잘 구조화하고 깔끔하게 만듭니다. Python은 들여쓰기를 사용하여 코드 블록을 정의합니다. 탭이나 공백을 사용하여 코드를 들여쓸 수 있습니다. 그러나 공백과 탭의 조합을 사용하면 들여쓰기 오류가 발생합니다. 들여쓰기 취소는 외부 들여쓰기 수준과 일치하지 않습니다.

파이썬에서 들여쓰기란?



Python에서 들여쓰기는 공백을 사용하여 수행됩니다. 간단히 말해서 들여쓰기는 문장 앞에 공백을 추가하는 것을 말합니다. PEP 8 rule에 따르면 코드를 들여쓰는 표준 방법은 들여쓰기 수준당 4개의 공백을 사용하는 것입니다.

들여쓰기가 없으면 파이썬은 다음에 어떤 코드를 실행할지 또는 어떤 명령문이 어떤 블록에 속하는지 알 수 없으므로 IndentationError가 발생합니다.

탭 또는 공백?



가장 좋은 방법은 들여쓰기로 공백을 사용하는 것이며 PEP 8 rule 에서 선호하는 들여쓰기도 마찬가지입니다.

탭은 이미 탭으로 들여쓰기된 코드와 일관성을 유지하기 위해서만 사용해야 합니다.

탭과 공백을 혼합하는 것은 허용되지 않으며, 그렇게 하면 Python에서 *indentationerror: unindent does not match any outer 들여쓰기 수준, * 및 코드 컴파일이 실패합니다.

들여쓰기 오류 수정: 들여쓰기가 외부 들여쓰기 수준과 일치하지 않음



몇 가지 예를 들어 파이썬에서 들여쓰기 오류의 가능한 원인과 해결책을 찾아봅시다.

스페이스와 탭의 혼합



이것은 개발자가 공백과 탭을 혼합하여 실수하는 경향이 있는 일반적인 시나리오입니다. 오류를 해결하려면 탭 또는 공백 중 하나의 접근 방식을 일관되게 따르되 둘을 혼합하여 사용하지 마십시오.

*예시 *

a=5
b=10

if a<b:
    print("Using 4 space for indentation")
    print("using tab for indentation")



산출

  File "c:\Projects\Tryouts\listindexerror.py", line 6
    print("using tab for indentation")
IndentationError: unexpected indent


VS Code 및 Pycharm과 같은 코드 편집기를 사용한다고 가정합니다. 이 경우 IDE 구성 설정에 따라 탭에서 공백으로 또는 공백에서 탭으로 변환하여 자동으로 문제를 해결합니다. 그러나 notepad++ 또는 sublime과 같은 다른 편집기를 사용하거나 명령줄을 사용하여 코드를 작성하는 경우 이 문제에 자주 직면할 수 있으며 해결책은 하나의 일관된 접근 방식을 사용하는 것입니다.

코드 블록 내 들여쓰기 크기 불일치



명령문, 루프 및 함수를 사용하는 경우 내부 코드 블록의 들여쓰기 수준이 같아야 합니다. 그렇지 않으면 IndentationError가 발생합니다.

예시

number=6
for i in range(1,number):
    print (i)
        print(number)


산출

 File "c:\Projects\Tryouts\listindexerror.py", line 4
    print(number)
IndentationError: unexpected indent


해결책

number=6
for i in range(1,number):
    print (i)
    print(number)


코드 블록의 잘못된 들여쓰기 또는 불일치



더 큰 프로젝트에서는 라인 수가 더 많기 때문에 루프, 명령문 및 함수를 작성하는 동안 코드 블록이 일치하지 않는 경우가 많습니다.

일반적인 사용 사례는 줄 수가 많기 때문에 if 블록과 else 블록 들여쓰기가 다를 수 있는 if-else 문입니다. 이로 인해 들여쓰기 오류가 발생합니다. 들여쓰기 취소는 외부 들여쓰기 수준과 일치하지 않습니다.

예시

a=5
b=6

if a< b:
        print("a is smaller")
    else:
        print("b is smaller")


산출

  File "c:\Projects\Tryouts\listindexerror.py", line 6
    else:
         ^
IndentationError: unindent does not match any outer indentation level


해결책

a=5
b=6

if a< b:
        print("a is smaller")
else:
        print("b is smaller")


산출

a is smaller


게시물 Python indentationerror: unindent does not match any outer indentation level SolutionItsMyCode에 처음 나타났습니다.

좋은 웹페이지 즐겨찾기