1 왜 들여쓰기(Indentation)가 중요할까?
→ 파이썬은 중괄호 { } 대신 들여쓰기로 코드의 구조를 구분함
→ 즉, 공백이나 탭의 위치가 문법(Syntax) 그 자체이며,단순히 보기 좋게 꾸미는 것이 아님
→ 들여쓰기는 '코드의 계층 구조'를 표현하는 신호임
→ 잘못된 들여쓰기는 IndentationError로 이어짐
2 들여쓰기의 기본 개념
→ 코드의 맨 앞부분에 공백(Space) 또는 탭(Tab)을 넣어 코드의 구조(블록)를 표현하는 방법임
→ 파이썬은 들여쓰기 깊이로 '어디까지가 같은 블록인가'를 판단함
1-1 코드
if True:
print('Hello!') # 공백 4칸
print('World!') # 들여쓰기 없음
3 들여쓰기의 기본 규칙 (PEP 8 기준)
1) 기본 원칙
→ 한 단계는 공백 4칸(Space x 4)과 같음
→ 탭(Tab) 사용은 비추천이며, 공백과 혼용은 금지함
→ 같은 블록은 같은 깊이를 유지함
→ PEP 8 공식 스타일 가이드는 들여쓰기를 4칸으로 통일하도록 명시함
2) 괄호 줄바꿈 시
→ 괄호, 리스트, 딕셔너리 내부에서는 자유롭게 줄바꿈이 가능함
→ 같은 수준으로 정렬해야 가독성이 높음
2-1 코드
numbers = [
1, 2, 3,
4, 5, 6,
]
4 들여쓰기가 필요한 주요 구문
| 구문 | 설명 | 예시 |
| if / elif / else | 조건문 블록 | if 조건: 다음 줄은 4칸 들여쓰기 |
| for / while | 반복문 블록 | 반복되는 코드 영역은 들여쓰기 |
| def | 함수 정의 | 함수 내부는 4칸 들여쓰기 |
| class | 클래스 정의 | 클래스 내부는 4칸 메서드 내부는 8칸 |
| try / except / finally | 예외 처리 | 각 블록 내부는 4칸 들여쓰기 |
| with | 자원 관리 구문 | 블록 내 코드 4칸 들여쓰기 블록 종료 시 자동 close |
| ㅡmatch / case | Python 3.10+ 조건 분기 | case 내부 4칸 들여쓰기 |
5 중첩 들여쓰기 (Nested Indentation)
→ 들여쓰기 안에 또 들여쓰기가 들어가는 구조
→ 즉, 조건문 안의 반복문, 함수 안의 조건문 같은 구조임
→ 중첩이 너무 깊으면 코드가 복잡해지므로 조기 종료(Early Exit), 함수 분리(Def 분리), 조건 반전으로 단순화하는 것이 좋음
6 자주 발생하는 오류와 해결법
| 오류 | 원인 | 해결법 |
| IndentationError | 콜론(:) 뒤에 들여쓰기 누락 블록 불일치 |
: 뒤는 항상 4칸 들여쓰기 |
| TabError | 탭(Tab)과 공백(Space) 혼용 | '탭을 공백으로 변환(Insert Spaces)' 설정 ON |
| 복사/붙여넣기 오류 | 들여쓰기 문자 깨짐 | 자동 포매터(black / autopep8)로 재정렬 |
7 자동 들여쓰기 & 포매터 설정 (VS Code 기준)
1) 기본 설정
| 설정 항목 | 권장 값 |
| editor.tabSize | 4 |
| editor.insertSpaces | true |
| editor.detectIndentation | false |
| editor.autoIndent | full |
| editor.formatOnSave | true |
2) 단축키
→ Shift + Alt + F는 전체 정렬임
→ Tab / Shift + Tab은 들여쓰기 증가 / 감소임
8 자동 포매터 (Formatter) 추천
| 도구 | 활용 | 명령어 |
| autopep8 | 세밀한 수정 가능 가볍고 빠름 |
autopep8 your_file.py -- in-place |
| black | 일관성 중심 실무 표준 |
black your_file.py black . |
→ VSCode에서 Black Formatter 확장을 설치하고, Format Document With... -> 'Black Formatter'를 선택하고, Format On Save를 활성화하면 저장 시 자동으로 PEP 8 기준으로 정렬이 완료됨
9 PEP 8 핵심 요약
| 항목 | 규칙 |
| 들여쓰기 | 공백 4칸 (탭 금지) |
| 한 줄 길이 | 79자 이하 |
| 함수/클래스 간 간격 | 2줄 띄우기 |
| 공백 사용 규칙 | 연산자 주변 1칸, 콤마 뒤 1칸 |
| 괄호 안쪽 | 공백 금지 |
| 파일 끝 | 빈 줄 1줄(개행) 추가 |
Python 들여쓰기에 대해 더 상세한 설명을 원하는 분들은 아래 사이트에 접속하기
Python 들여쓰기 뿐만 아니라 다른 프로그래밍 언어에 대해 알고 싶은 분들은 아래 사이트에 접속하여 원하는 링크에 접속하기
'파이썬 > 첫 실행과 기본 사용법' 카테고리의 다른 글
| 파이썬 한글 깨짐 완전 해결! 인코딩(UTF-8·CP949) 차이부터 오류 원인, 실습, 환경 설정까지 총정리 (0) | 2025.10.25 |
|---|---|
| UTF-8 완전정복: 문자 -> 코드포인트 -> 바이트까지 이해하기 (0) | 2025.10.20 |
| 파이썬 input() 완벽 가이드 | 한 줄 입력부터 여러 줄, 예외 처리, sys.stdin, 환경 변수까지 총정리 (0) | 2025.10.10 |
| 파이썬 .py 파일 실행 방법 총정리 | 초보자부터 실무까지 완벽 가이드 (0) | 2025.09.30 |
| 파이썬 주석 & 타입 힌트 완벽 가이드 | PEP 8, Docstring까지 한 번에 정리 (1) | 2025.09.17 |