파이썬에서 들여쓰기는 코드베이스 내에서 가독성과 유지보수성을 모두 보장하는 데 중요한 역할을 합니다. 이 언어는 들여쓰기에 관한 엄격한 지침을 준수하며, 이를 정확하게 따르지 않을 경우 IndentationError가 발생할 수 있습니다. 이 오류는 들여쓰기가 불일치하거나 부적절하게 사용될 때 발생하며, 코드 실행에 장애를 일으킵니다. 따라서 이러한 오류를 방지하고 프로그램의 원활한 작동을 보장하기 위해 Python 코드를 작성할 때 올바른 들여쓰기 관행을 따르는 것이 필수적입니다.

예기치 않은 들여쓰기’ 또는 ‘들여쓰기 오류: 들여쓰기된 블록이 예상됨’으로 각각 과도한 들여쓰기 또는 불충분한 들여쓰기 문제인지에 따라 표시됩니다. 예를 들어, 개발자가 for 루프 내에서 한 줄 또는 여러 줄을 제대로 들여쓰는 것을 잊어버렸을 때 흔히 발생하는 IndentationError 유형 중 하나는 “IndentationError: ‘for’ 문 뒤에 들여쓰기된 블록이 예상됨”과 같은 오류 메시지를 표시하는 것입니다.

파이썬에서 들여쓰기 오류가 발생하는 이유는 무엇인가요?

많은 프로그래머, 특히 Python을 처음 사용하거나 다른 코딩 언어에서 마이그레이션하는 프로그래머가 자주 직면하는 문제는 적절한 컨텍스트 내에서 코드 블록을 올바르게 들여쓰지 못할 때 발생하는 “들여쓰기 오류”입니다.

파이썬에서는 조건문, 함수 및 루프를 포함한 코드 블록을 구분하기 위해 들여쓰기를 사용해야 합니다. 이 규칙을 준수하지 않으면 ‘들여쓰기 오류’라는 위반이 발생할 수 있습니다.

파이썬은 제대로 들여쓰기되지 않은 모든 코드 블록에 대해 고유한 오류 메시지를 생성하며, 이를 구분하기 위해 문구나 구조에 약간의 차이를 보입니다.

“IndentationError: 들여쓰기된 블록이 예상됨” 오류 수정

Python에서 ‘IndentationError’를 해결하는 한 가지 방법은 블록 문 내에서 코드가 올바르게 들여쓰기되었는지 확인하는 것입니다. 구조가 잘못된 코드의 샘플 인스턴스는 다음과 같습니다:

 fname = "Gaurav"

lname = "Siyal"


if fname == "Gaurav" and lname == "Siyal":

print("You're Gaurav")

else:

print("You're somebody else")

이 문은 제공된 코드를 실행하려고 하면 오류가 발생한다는 것을 나타냅니다.

  File "tmp.py", line 5

   print("You're Gaurav")

       ^

IndentationError: expected an indented block after 'if' statement on line 4

‘들여쓰기된 블록이 필요한 IndentationError’를 해결하려면 코드 블록이 올바르게 들여쓰기되었는지 확인해야 합니다. 코드의 문제를 해결하고 수정하려면 다음 디버깅 지침을 따르세요:

이 글도 확인해 보세요:  슬랙에서 나만의 사용자 지정 슬래시 명령 만들기

오류 메시지에 표시된 특정 코드 줄을 확인하고 해당 코드에 조건문이 포함되어 있는지 확인합니다.

일반적으로 코드 블록을 나타내는 콜론(:) 기호 뒤에 부적절한 들여쓰기가 없는지 확인한 후, 잠재적인 오류를 수정하기 위해 필요한 들여쓰기가 있는지 여부를 확인합니다.

실제로 Python에서 코드를 들여쓰기할 때는 고정된 공백 개수를 사용하거나 표에 의존하여 일관성을 유지하는 것이 중요합니다. 두 가지를 혼용하면 예기치 않은 문제가 발생할 수 있으므로 어떤 대가를 치르더라도 피해야 합니다. 일반적으로 표를 사용하는 것이 코딩 작업 전반에 걸쳐 균일성을 보장하는 신뢰할 수 있는 옵션으로 권장되는 경우가 많습니다.

들여쓰기는 코드의 가독성과 구성을 결정하기 때문에 코드 작성에 있어 매우 중요한 요소입니다. 적절한 들여쓰기를 사용하면 중첩된 코드 블록의 여러 수준을 시각적으로 구분할 수 있으므로 프로그래머가 복잡한 프로그램을 더 쉽게 이해하고 탐색할 수 있습니다. 이 예제에서는 탭을 사용하여 Python 코드에서 올바른 들여쓰기를 수행하는 방법을 보여드리겠습니다.

 fname = "Gaurav"
lname = "Siyal"

if fname == "Gaurav" and lname == "Siyal":
    print("You're Gaurav")
else:
    print("You're somebody else")

예기치 않은 들여쓰기”는 Python 코드의 들여쓰기가 잘못되었음을 나타내는 오류 메시지입니다. 이 문제에 대한 기본적인 그림은 아래에서 확인할 수 있습니다:

 num = 5
    num += 2

예기치 않은 들여쓰기” Python 코드로 작업할 때 오류가 발생합니다. 이 오류는 코드에 사용된 들여쓰기 양과 인터프리터가 예상하는 양이 일치하지 않을 때 발생합니다. 예를 들어 코드 블록을 닫은 후 실수로 공백이나 탭을 추가하면 후속 코드 줄이 동일한 블록의 일부로 해석되어 “들여쓰기 오류”가 발생합니다. 이 문제에 대한 해결책은 모든 코드 블록이 적절한 구문을 사용하여 올바르게 닫히고 추가 들여쓰기 또는 공백 문자를 제거하도록 하는 것입니다.

 num = 5
num += 2

적절한 에디터 들여쓰기 보장

많은 최신 텍스트 편집기는 자동 코드 들여쓰기 기능을 제공합니다. 편집기가 특정 코드 줄에 들여쓰기가 필요하다고 인식하는 경우, 원하는 정렬을 위해 표 또는 공백을 적절히 삽입합니다.

널리 사용되는 Python 통합 개발 환경(IDE)인 Spyder에서 들여쓰기 설정을 찾으려면 “도구” 메뉴로 이동하여 “기본 설정”을 선택해야 합니다. 여기에서 “소스 코드”를 선택하고 원하는 조정을 수행할 수 있습니다.

이 글도 확인해 보세요:  녹 매크로: 매크로를 사용하여 코드를 개선하는 방법

Vim은 사용자가 개인 취향에 따라 환경을 조정할 수 있는 다양한 사용자 지정 기능을 제공합니다. 이러한 기능 중 하나는 구성 파일 편집을 통해 들여쓰기 설정을 조정하는 기능입니다. 가장 많이 사용되는 구성은 최적의 결과를 얻기 위해 다른 관련 옵션과 함께 “자동 들여쓰기” 옵션을 활성화하는 것입니다.

 set autoindent
set expandtab
set tabstop=4
set softtabstop=4
set shiftwidth=4

들여쓰기는 독자가 따라가기 쉽도록 명확하고 체계적인 구조를 만드는 데 도움이 되므로 글쓰기에 있어 매우 중요한 요소입니다. 들여쓰기는 탭을 사용하거나 수동으로 공백을 삽입하는 등 다양한 방법으로 만들 수 있습니다. 공백으로 들여쓰기를 만들 때는 일관성과 가독성을 보장하기 위해 각 들여쓰기 수준에 4개의 공백을 사용하는 것이 중요합니다. 이 기법은 작성된 문서와 코드 블록 모두에 적용하여 전체적인 모양을 개선하고 이해하기 쉽게 만들 수 있습니다.

최신 텍스트 편집기에는 자동 코드 들여쓰기 기능이 널리 보급되어 있지만, 특정 경우에는 여전히 사용하기 어려울 수 있으므로 개발자는 주의를 기울여야 합니다. 일관되고 적절한 들여쓰기 관행을 준수하는 것은 코드 가독성을 향상시킬 뿐만 아니라 팀원 간의 통일성을 조성하는 데에도 매우 중요합니다.

표시된 시나리오에서 함수의 결론 문은 첫 줄에 있는 해당 함수 서명을 기준으로 한 단계씩 들여쓰기되어 있습니다. 그럼에도 불구하고 텍스트 삽입 지점을 바로 앞 줄의 정점에 배치하고 자동 줄 바꿈 입력을 실행하면 두 가지 가능한 결과 중 하나가 실현될 수 있습니다. 편집 인터페이스는 새 줄의 위치를 다음과 같이 선택할 수 있습니다. def train_model(w_word2vec, w_sentence2vec, sent_file, word_dict): “””Word2Vec과 Sentence2Vec을 사용하여 감성을 예측하기 위한 모델을 훈련합니다.””” # 파일에서 데이터 로드 sentences, labels = load_data(sent_file) # 단어 벡터와 문장 벡터의 배열을 생성합니다. words = [] sen_vectors = [] # 데이터 세트의 각 단어에 대한 단어 벡터 생성 for i in range(len(words)): word_index = words[i] word_vector = w_word2vec[word_index] words.append(word_vector) # 평균으로 문장 벡터 생성

미리 정해진 시간 제한 또는 거리 임계값 내에서 일치하는 번호판을 찾지 못하면 F 단계로 진행

이 글도 확인해 보세요:  HTTP와 HTTPS: 차이점은 무엇인가요?

편집기가 조건문 내에 추가 코드를 추가해야 하거나 더 이상 정교화가 필요하지 않은 두 가지 시나리오를 구분하지 못하는 것 같습니다.

부적절한 들여쓰기의 일반적인 사례

If 문

‘if’ 문 뒤에 들여쓰기 블록이 예상됨.” 이는 조건부 블록 내의 각 후속 줄이 적절하게 들여쓰기되도록 함으로써 달성할 수 있습니다. 예를 들어 다음 코드 스니펫을 살펴보겠습니다:

 if my_name == "Gaurav":
    print("My name is Gaurav")

함수

함수를 실행할 때 ‘들여쓰기 오류’ 메시지가 표시되지 않도록 하려면 올바른 구문을 따르는 것이 중요합니다.각 함수 선언을 해당 여는 괄호 바로 아래에 배치하는 권장 들여쓰기 형식을 준수하면 이러한 문제를 방지할 수 있습니다. 이 가이드라인을 준수하지 않으면 함수 정의 다음에 들여쓰기 블록이 예상됨을 나타내는 “IndentationError” 메시지가 생성될 수 있습니다. 따라서 아래 그림과 같이 모든 함수가 적절하게 들여쓰기되었는지 확인하는 것이 중요합니다:

 def magic_number():
   result = 42
   return result
    
print magic_number()

For Loops

‘for’ 문 뒤에 들여쓰기된 블록이 예상됨” 메시지가 표시됩니다. 일관성을 유지하고 권장 사항을 준수하려면 코드를 작성할 때 다음과 같은 들여쓰기 구조를 준수해야 합니다:

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

들여쓰기되지 않은 독스트링

코드에 대한 명확하고 포괄적인 문서화를 유지하려면 프로그램의 관련 섹션에 독스트링을 포함하는 것이 좋습니다. 그러나 이러한 문서 문자열은 주변 코드와 적절하게 정렬되어야 하며, 그렇지 않으면 Python에서 부적절하게 들여쓰기된 블록으로 인해 ‘들여쓰기 오류’가 발생할 수 있습니다. 이러한 문제를 방지하려면 아래에 설명된 대로 일관된 들여쓰기 관행을 준수하세요:

 def do_something():
    """this code does something"""
    return True

파이썬의 ‘들여쓰기 블록 예상’ 오류 처리

들여쓰기에 관한 파이썬의 엄격한 가이드라인을 통합하면 이 프로그래밍 언어를 사용할 때 고려해야 하는 새로운 형태의 감독이 도입될 수 있습니다. 그럼에도 불구하고 이러한 규정은 가독성 향상과 개발자 간의 통일성 등 여러 가지 이점을 제공합니다.

실제로 효과적인 프로그래밍을 위해서는 들여쓰기 문제를 넘어 Python 오류를 디버깅하고 해결하는 숙련도가 필수적입니다. 일반적인 실수를 숙지하면 문제 해결을 위한 노력을 가속화하고 문제를 신속하게 해결할 수 있습니다.

By 최은지

윈도우(Windows)와 웹 서비스에 대한 전문 지식을 갖춘 노련한 UX 디자이너인 최은지님은 효율적이고 매력적인 디지털 경험을 개발하는 데 탁월한 능력을 발휘합니다. 사용자의 입장에서 생각하며 누구나 쉽게 접근하고 즐길 수 있는 콘텐츠를 개발하는 데 주력하고 있습니다. 사용자 경험을 향상시키기 위해 연구를 거듭하는 은지님은 All Things N 팀의 핵심 구성원으로 활약하고 있습니다.