IndentationErrors는 두 가지 목적을 수행합니다. 코드를 더 읽기 쉽게 만들고 Python 인터프리터가 코드를 올바르게 이해하도록 합니다. 필요하지 않은 공간이나 탭을 추가하면 "IndentationError:예기치 않은 들여쓰기" 오류가 발생합니다.
이 가이드에서는 이 오류의 의미와 발생 이유에 대해 설명합니다. 이 오류의 예를 살펴보고 프로그램에서 이 오류를 수정하는 방법을 알아낼 수 있습니다.
IndentationError:예기치 않은 들여쓰기
들여쓰기는 코드 줄이 특정 코드 블록의 일부임을 나타내는 특정 수의 공백 또는 탭입니다. 다음 프로그램을 고려하십시오.
def hello_world(): print("Hello, world!")
우리는 단일 함수를 정의했습니다:hello_world()
. 이 함수에는 인쇄 문이 포함되어 있습니다. 파이썬에 이 코드 라인이 우리 함수의 일부임을 나타내기 위해 들여쓰기를 했습니다.
기호에 따라 공백이나 탭을 사용하여 코드를 들여쓸 수 있습니다. 코드가 다른 코드 블록의 일부여야 하는 경우에만 코드를 들여쓰기해야 합니다. 여기에는 다음과 같이 코드를 작성할 때가 포함됩니다.
- "if...else" 문
- "try...except" 문
- "for" 루프
- "기능" 설명
Python 코드는 특수 문에 표시되는 경우 일관되게 들여쓰기해야 합니다. Python은 들여쓰기를 엄격하게 시행합니다.
JavaScript와 같은 일부 프로그래밍 언어는 코드 블록을 표시하기 위해 중괄호를 사용하기 때문에 들여쓰기를 엄격하게 적용하지 않습니다. Python에는 이 기능이 없으므로 언어는 들여쓰기에 크게 의존합니다.
"IndentationError:예기치 않은 들여쓰기" 오류의 원인은 코드를 너무 많이 들여쓰거나 너무 많은 탭과 공백을 사용하여 코드 줄을 들여쓰기하는 것입니다.
참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.
부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.
발생할 수 있는 다른 들여쓰기 오류는 다음과 같습니다.
- 들여쓰기가 다른 들여쓰기 수준과 일치하지 않습니다.
- 들여쓰기된 블록 예상
예시 시나리오
우리는 사용자가 구매한 목록을 순환하고 $25.00보다 큰 구매 목록을 모두 콘솔에 출력하는 프로그램을 만들 것입니다.
시작하려면 구매 목록을 정의해 보겠습니다.
purchases = [25.50, 29.90, 2.40, 57.60, 24.90, 1.55]
다음으로 구매 목록을 순환하고 $25 이상의 가치가 있는 항목을 콘솔에 출력하는 함수를 정의합니다.
def show_high_purchases(purchases): for p in purchases: if p > 25.00: print("Purchase: ") print(p)
show_high_purchases()
함수는 하나의 인수를 허용합니다. 함수가 검색할 구매 목록입니다. 함수는 이 목록을 반복하고 if
를 사용합니다. 각 구매의 가치가 $25.00 이상인지 확인하는 명세서.
구매 금액이 $25.00 이상인 경우 Purchase:
콘솔에 인쇄됩니다. 그런 다음 해당 구매 가격이 콘솔에 인쇄됩니다. 그렇지 않으면 아무 일도 일어나지 않습니다.
코드를 실행하기 전에 함수를 호출하고 구매 목록을 매개변수로 전달합니다.
show_high_purchases(purchases)
코드를 실행하고 어떤 일이 일어나는지 봅시다:
File "main.py", line 7 print(p) ^ IndentationError: unexpected indent
코드가 성공적으로 실행되지 않습니다.
해결책
모든 파이썬 오류와 마찬가지로, 무슨 일이 일어나고 있는지 보려면 전체 오류 메시지를 읽어야 합니다. 문제는 7행에 있는 것으로 보이며, 여기에서 구매 금액을 인쇄합니다.
if p > 25.00: print("Purchase: ") print(p)
우연히 두 번째 print()
를 들여쓰기했습니다. 성명. 두 번째 print()
때문에 오류가 발생합니다. 문은 다른 코드 블록의 일부가 아닙니다. 여전히 if
의 일부입니다. 성명.
이 오류를 해결하려면 모든 print()
를 일관되게 들여써야 합니다. 진술:
if p > 25.00: print("Purchase: ") print(p)
print()
둘 다 문은 동일한 if
의 일부이므로 동일한 수준의 들여쓰기를 사용해야 합니다. 성명. 위에서 수정했습니다.
코드를 실행해 보겠습니다.
Purchase: 25.5 Purchase: 29.9 Purchase: 57.6
코드는 $25.00 이상의 모든 구매를 콘솔에 성공적으로 인쇄합니다.
결론
"IndentationError:예기치 않은 들여쓰기"는 코드 줄을 너무 많이 들여쓰면 발생합니다. 이 오류를 해결하려면 모든 코드에서 일관된 들여쓰기를 사용하고 불필요한 들여쓰기가 없는지 확인하십시오.
이제 Python 전문가처럼 이 오류를 수정할 준비가 되었습니다!