python의 빈칸과tab가 혼동되어 오류를 보고하는 문제를 해결합니다

2325 단어 python빈칸tab
python에서 빈칸과tab는 구분되어 있습니다. 양자가 섞이면 오류를 보고할 수 있습니다. 빈칸만 사용하거나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 "탭을 자동으로 공백으로 확장합니다.
이상의 개인적인 경험으로 여러분께 참고가 되었으면 좋겠습니다. 또한 많은 응원 부탁드립니다.만약 잘못이 있거나 완전한 부분을 고려하지 않으신다면 아낌없이 가르침을 주시기 바랍니다.

좋은 웹페이지 즐겨찾기