Python 에서 IndentationError:unindent does not match any outer indentation level 오류 해결 방법
python 스 크 립 트 가 잘 실행 되 고 코드 를 몇 줄 썼 으 며 줄 마다 정렬 되 어 있 는 지 확인 하 였 으 나 실행 할 때 문법 오류 가 발생 했 습 니 다.
IndentationError: unindent does not match any outer indentation level
[해결 과정]
1.이 오류 에 대해 가장 흔히 볼 수 있 는 이 유 는 확실히 정렬 되 지 않 았 기 때문이다.하지만 잘못된 힌트 의 줄 수 에 따라 코드 에 가서 봤 는데 문제 가 없 었 어 요.
모두 TAB 키 로 맞 춰 져 있 습 니 다.정렬 되 지 않 은 줄 수 는 없습니다.
2.앞의 주석 내용 이 뒤의 문장의 문법 에 영향 을 미 치 는 줄 알 고 앞의 주석 도 삭제 했다.
결국 이 문법 이 틀 렸 다.
3.한참 을 뒤척이다 가 갑자기 생각 났 어 요.현재 python 스 크 립 트 의 모든 문 자 를 표시 해서 특별한 문자 가 있 는 지 확인 해 보 세 요.
현재 사용 하고 있 는 텍스트 편집기 Notepad++는 모든 문 자 를 표시 할 수 있 는 설정 이 있 는 것 같 습 니 다.
찾 았 습 니 다.
보기->기호 표시->빈 칸 과 탭 표시
그리고 문 제 를 알 아 냈 다.
원래 잘못된 줄 수 는 1580 줄 입 니 다.
그러나 소스 코드 1580 줄 의 정렬 은 점 의 빈 칸 을 사용 합 니 다.앞의 몇 줄 의 정렬 에 사용 되 는 화살표 와 일치 하지 않 는 TAB 키 입 니 다.즉,코드 의 정렬 은 TAB 키 와 빈 칸 을 혼 용 했 습 니 다.
새로운 Python 문법 은 지원 되 지 않 는 코드 정렬 에서 TAB 와 빈 칸 을 혼용 합 니 다.그래서 상술 한 오류 알림 이 나 왔 습 니 다.
이 유 를 알 면 해결 이 간단 하 다.
이에 대응 하 는 TAB 를 모두 빈 칸 으로 바 꾸 고 정렬 된 스타일 을 통일 하면 된다.
Notepad+에서 가기:
설정->첫 번 째 옵션:
언어->공백 으로 대체(TAB 키):
이후 매번 TAB 입력 에 대해 자동 으로 4 개의 빈 칸 으로 전환 하 는 것 이 가능 하 다.
[총괄]
Python 에서 IndentationError 를 만 났 을 때,TAB 키 와 빈 칸 이 혼합 되 어 사용 되 었 는 지 가장 먼저 생각해 야 합 니 다.
많은 사람들 이 이런 이유 로 생 긴 것 으로 추정 된다.통일 만 하면 돼.
다음은 다른 네티즌 의 보충
오늘 인터넷 copy 의 코드 는 코드 가 간단 합 니 다.줄 마다 들 여 쓸 것 이 들 어 가 는 것 처럼 보 입 니 다.실행 할 때 다음 과 같은 오류 가 발생 했 습 니 다.
[해결 과정]
1.이 오류 에 대해 가장 흔히 볼 수 있 는 이 유 는 확실히 들 어가 지 않 았 기 때문이다.잘못된 힌트 의 줄 수 에 따라 코드 에 가서 보 니 문제 가 없 는 것 같 습 니 다.모두 들 여 쓰기 가 있 고 문법 도 잘못 되 지 않 았 습 니 다.
2.코드 를 자세히 살 펴 보 니 정말 문제 가 보이 지 않 습 니 다.갑자기 생각 났 습 니 다.현재 python 스 크 립 트 의 모든 문자(빈 칸 과 tab 문자 포함)를 들 여 쓰 거나 다른 특수 한 문자 가 있 는 지 보 여 줍 니 다.
현재 사용 하고 있 는 텍스트 편집기 Notepad+,모든 문 자 를 표시 할 수 있 는 설정 이 있 습 니 다.
재:
보기 C>기호 표시 C>빈 칸 과 탭 표시
이렇게 하면 우리 Python 코드 의 들 여 쓸 것 이 있 는 지 없 는 지 를 볼 수 있 습 니 다.
결국 코드 오류 원인 이 여기 서 나 왔 다 는 것 을 알 게 되 었 습 니 다.오류 알림 의 이 줄 은 들 여 쓰 는 것 처럼 보이 지만 사실은 들 여 쓰 지 않 았 습 니 다.이것 이 문제 의 근원 입 니 다.
문 제 를 발 견 했 습 니 다.copy 에서 온 Python 코드 가 들 여 쓰 지 않 은 것 을 발 견 했 습 니 다.다른 사람의 코드 를 복사 할 때 들 여 쓰 는 것 은 추가 적 인 주의 가 필요 합 니 다.코드 가 들 어 갔다 고 해서 OK 라 고 느끼 지 마 세 요.사실은 들 어 오지 않 았 어 요.
총결산
세 개의 따옴표 주석 을 사용 하려 면 들 여 쓰기 가 문맥 과 일치 해 야 합 니 다.
즉,같은 차원 코드 는 몇 개의 들 여 쓰기 이 고 몇 개의 들 여 쓰기 이다.
신문 에 실 수 된 이 유 는 자신 이 주석'test'앞 에 세 개의 빈 칸 만 있 기 때문이다.
같은 층 코드 는 4 개의 빈 칸 인 데 하필 8 개의 빈 칸 을 써 야 한다.
대응 하 는 단일 줄 주석\##는 들 여 쓰기 에 대한 요구 가 없습니다.
세 개의 따옴표 가 문자열 에 속 하 는 이유 일 수도 있 습 니 다.
이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.더 많은 내용 을 알 고 싶다 면 아래 링크 를 보 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.