python의 빈칸과tab가 혼동되어 오류를 보고하는 문제를 해결합니다
만약python의 공식 컴파일러를 사용한다면 다음 방법을 통해 전체 페이지의 간격 기호를 통일할 수 있습니다.
1. 전체 코드 선택(edit―select All)
2. 통일 간격 기호는tab(format―tabifyregion)이거나 통일 간격 기호는 공백(format―untabifyregion)이다.
보충:python에서 축소-tab인지 빈칸인지는 다르기 때문에 일반적으로 혼용할 수 없습니다. 탭이 자동으로 빈칸으로 바뀌지 않는 한
다음과 같습니다.
실험 코드:if 10>4: print("hello")print("hello")print("hello")
실험1
실험2
실험3
실험
실험
조작하다
줄마다 tab키 1개로 들여쓰기
첫 번째 줄은 tab 1개, 두 번째 줄은 tab 2개, 세 번째 줄은 tab 1개
스페이스 바를 사용하여 들여쓰고, 줄마다 하나의 스페이스 바를 사용합니다.
첫 번째 줄은 1칸, 두 번째 줄은 1칸, 세 번째 줄은 2칸으로
혼합용tab과 빈칸: 첫 번째 줄은 1개tab(편집기에서 1개tab의 너비는 4개로 설정), 두 번째 줄은 1개tab, 세 번째 줄은 4개의 빈칸을 사용합니다.
결과
잘못 보고한 것이 없다
IndentationError: unexpected indent
잘못 보고한 것이 없다
IndentationError: unexpected indent
IndentationError: unindent does not match any outer indentation level
분석
코드의 ASCII를 보고 확실히 tab을 사용했는지 확인하자
ASCII 코드를 보고 확실히 다른 숫자의 tab를 사용했는지 확인하세요
ASCII 코드를 보고 빈칸을 사용하는지 확인하십시오(ASCII 값 0x20)
빈칸으로 들여쓰기는 가능하지만, 줄마다 같은 수의 빈칸을 사용해야 한다.
ASCII 코드를 보면 스페이스 바와 탭이 혼용된 것을 알 수 있습니다.공백과tab는 혼용할 수 없습니다
실험
혼합용tab와 공백: 줄마다 4개의 공백 + 1개의 탭
아, 생각났어요. ASCII 코드를 붙이는 것은 정말 귀찮아요. 편집기에는 빈칸과 탭을 표시하는 기능이 있어요.우리가 표시한 후에 코드 캡처도를 붙이자.
실행 결과
hello
hello
hello
비록 성공적으로 운행할 수 있지만, 이렇게 하는 것이 바로'작'이다.
실험 결론
이렇게 많은 실험을 해서 마침내 결론을 얻을 수 있었다.
Python에서 들여쓰기는 빈칸을 사용할 수도 있고,tab를 사용할 수도 있으며, 심지어 혼용할 수도 있다. (예를 들어 줄마다 1개의 tab를 사용하고 4개의 빈칸을 사용하고 2개의 tab를 사용하고 4개의 빈칸을 사용한다).
네가 어떻게 축소하든지 간에, 너는 두 번째 줄과 첫 번째 줄의 문자가 같고, 세 번째 줄과 두 번째 줄의 문자가 같다는 것을 보증해야 한다. 즉, 각 줄의 문자가 같다는 것이다.
모범 사례
사실 Python은 강제로 Tab으로 들여쓰거나 빈칸으로 들여쓰기를 요구하지 않지만, PEP8에서는 4개의 빈칸으로 들여쓰기를 권장합니다.
Python Enhancement Proposals index 8 ―― Style Guide for Python Code
https://www.python.org/dev/peps/pep-0008/
Use 4 spaces per indentation level.
notepad++ Tab 자동 4개의 공백으로 변환VIM의 경우 이렇게 설정할 수 있습니다.
set tabstop=4 "탭에 표시되는 너비를 4개의 공백으로 설정합니다
set expandtab "탭을 자동으로 공백으로 확장합니다.
이상의 개인적인 경험으로 여러분께 참고가 되었으면 좋겠습니다. 또한 많은 응원 부탁드립니다.만약 잘못이 있거나 완전한 부분을 고려하지 않으신다면 아낌없이 가르침을 주시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.