Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python TabError:들여쓰기에서 탭과 공백의 일관성 없는 사용 솔루션

Python 프로그램에서 공백이나 탭을 사용하여 코드를 들여쓸 수 있습니다. 동일한 코드 블록에서 이 둘의 조합을 사용하려고 하면 "TabError:들여쓰기에서 탭과 공백의 불일치 사용" 오류가 발생합니다.

이 가이드에서는 이 오류의 의미와 발생 이유에 대해 설명합니다. 코드에서 이 오류를 해결하는 방법을 알아낼 수 있도록 이 오류의 예를 살펴보겠습니다.

TabError:들여쓰기에서 탭과 공백의 일관성 없는 사용

Python 스타일 가이드에서는 Python으로 코딩할 때 선호하는 들여쓰기 방법에 공백이 있다고 나와 있지만 공백이나 탭을 사용할 수 있습니다.

파이썬에서는 들여쓰기가 중요합니다. 왜냐하면 언어는 코드 블록이 시작하고 끝나는 위치를 나타내는 중괄호와 같은 구문에 의존하지 않기 때문입니다. 들여쓰기는 파이썬에게 어떤 코드 라인이 어떤 코드 블록의 일부인지 알려줍니다.

다음 프로그램을 고려하십시오.

numbers = [8, 7, 9, 8, 7]

def calculate_average_age():
average = sum(numbers) / len(numbers)
print(average)

들여쓰기 없이는 어떤 코드 라인이 compute_average_age 함수의 일부가 되어야 하고 어떤 코드 라인이 메인 프로그램의 일부인지 알 수 없습니다.

공백이나 탭을 계속 사용해야 합니다. 탭과 공백을 혼합하지 마십시오. 그렇게 하면 파이썬 인터프리터가 혼란스러워지고 "TabError:들여쓰기에서 탭과 공백의 일관성 없는 사용" 오류가 발생합니다.

예시 시나리오

우리는 도넛 가게에서 이루어진 구매의 총 가치를 계산하는 프로그램을 만들고 싶습니다. 시작하려면 구매 목록을 정의해 보겠습니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

purchases = [2.50, 4.90, 5.60, 2.40]

다음으로 "구매" 목록의 총계를 계산하는 함수를 정의합니다.

def calculate_total_purchases(purchases):
	total = sum(purchases)
    return total

우리의 함수는 하나의 매개변수를 받아들입니다. 즉, 계산하려는 총 가치의 구매 목록입니다. 이 함수는 매개변수로 지정한 목록의 총 값을 반환합니다.

sum() 메서드를 사용하여 "purchases" 목록에 있는 숫자의 총계를 계산합니다.

이 코드 조각을 텍스트 편집기에 복사하면 "return total" 코드 줄은 공백을 사용하여 들여쓰기되는 반면 "total =sum(purchases)" 코드 줄은 들여쓰기에 탭을 사용하는 것을 알 수 있습니다. 이것은 중요한 차이점입니다.

다음으로 함수를 호출하고 콘솔에 반환하는 값을 인쇄합니다.

total_purchases = calculate_total_purchases(purchases)
print(total_purchases)

우리 코드는 calculate_total_purchases()를 호출합니다. 도넛 가게에서 이루어진 모든 구매의 총액을 계산하는 함수입니다. 그런 다음 해당 값을 콘솔에 인쇄합니다. 코드를 실행하고 어떤 일이 일어나는지 봅시다:

  File "test1.py", line 5
	return total
           	^
TabError: inconsistent use of tabs and spaces in indentation

코드가 오류를 반환합니다.

해결책

코드를 들여쓰기 위해 공백과 탭을 사용했습니다. Python 프로그램에서는 이 두 가지 들여쓰기 방법 중 하나를 계속 사용해야 합니다.

코드를 수정하기 위해 공백만 사용하도록 함수를 변경합니다.

def calculate_total_purchases(purchases):
	total = sum(purchases)
    return total

우리 코드는 들여쓰기를 위해 4개의 공백을 사용합니다. 새로운 들여쓰기로 프로그램을 실행해 봅시다.

15.4

우리 프로그램은 도넛 구매의 총 가치를 성공적으로 계산합니다.

IDLE 편집기에서 다음 지침에 따라 코드 블록의 들여쓰기를 제거할 수 있습니다.

  • 들여쓰기를 제거하려는 코드 선택
  • '메뉴' -> '형식' -> '탭 해제 영역' 클릭
  • 사용할 들여쓰기 유형 삽입

이것은 IDLE 편집기를 사용한다고 가정할 때 문서의 서식을 수정하는 편리한 방법입니다. Sublime Text와 같은 다른 많은 편집기에는 파일의 들여쓰기를 변경하는 고유한 방법이 있습니다.

결론

공백과 탭을 모두 사용하여 코드를 들여쓰려고 하면 Python "TabError:들여쓰기에서 탭과 공백의 일관성 없는 사용" 오류가 발생합니다.

프로그램의 공백이나 탭에 고정하고 선호하는 들여쓰기 방법을 사용하지 않는 탭이나 공백을 교체하여 이 오류를 수정합니다. 이제 전문 프로그래머처럼 이 오류를 수정하는 데 필요한 지식을 얻었습니다!