본문으로 건너뛰기
실습하기

파이썬에서 들여쓰기(Indentation)는 왜 중요할까?

파이썬에서 들여쓰기는 코드를 실행하는 그룹 단위인 코드 블록(Code Block)을 정의하는 중요한 문법 요소입니다.

중괄호 { } 또는 세미콜론 ;을 사용해 코드 블록의 시작과 끝을 표시하는 다른 프로그래밍 언어들과 달리, 파이썬은 들여쓰기로 코드 블록을 구분합니다.

일반적으로 들여쓰기는 공백 4개 또는 탭 1개를 사용해 코드 실행 단위를 구분합니다.

대부분의 프로그래밍 언어에서 들여쓰기는 코드 가독성 개선을 위해 사용되지만, 파이썬에서 들여쓰기가 잘못되면 문법 에러가 발생합니다.


들여쓰기는 어떻게 사용되나요?

1. 조건문: 특정 조건이 충족될 경우에만 실행되는 코드 블록

파이썬은 ifelse 키워드로 조건문을 정의합니다. 키워드(Keyword)는 프로그램 내에서 특별한 의미를 갖는 단어를 뜻합니다.

if 키워드는 조건이 참일 때 실행되는 코드 블록을 정의하고, else 키워드는 조건이 거짓일 때 실행되는 코드 블록을 정의합니다.

조건문 들여쓰기 예시
if condition:
print("condition이 참인 경우") # 들여쓰기
else:
print("condition이 거짓인 경우") # 들여쓰기

2. 함수: 특정 기능을 수행하는 코드 블록

파이썬은 def 키워드로 특정 기능을 수행하는 함수(Function)를 정의합니다.

아래 코드는 multiply라는 함수를 정의하고, ab 두 개의 수를 곱한 결과를 return 키워드로 반환합니다.

일상적인 사칙 연산과는 달리, 프로그래밍에서 곱셈은 x 기호가 아닌 별표 기호 *로 표현합니다.

파이썬 함수 들여쓰기 예시
def multiply(a, b):
# 들여쓰기로 함수 본문 정의
result = a * b
return result # 들여쓰기로 함수의 반환값 정의

print(multiply(3, 5)) # 15 출력

print(multiply(4, 6)) # 24 출력

multiply로 정의된 함수는 multiply(3, 5), multiply(4, 6)와 같이 프로그램 내에서 여러번 호출해 재사용할 수 있습니다.

이렇게 함수를 활용하면 코드를 재사용해 코드의 중복을 줄일 수 있습니다.


3. 반복문: 특정 조건 내에서 반복하는 코드 블록

반복문은 특정 조건이 참일 때 코드 블록을 반복 실행하며, for 또는 while 키워드로 정의합니다.

반복문 예시
for i in range(4): # 0부터 3까지 4번 반복
print(i) # 반복되는 코드 블록 들여쓰기
  • for는 반복문을 정의하는 키워드이며, i in range(4)반복 범위를 나타냅니다.

  • 콜론(:) 밑으로 들여쓰기 된 코드 블록은 반복 1회 때 실행할 코드를 정의합니다. 위 예시는 print(i)로 해당 반복에서 i의 값을 출력합니다.

  • i는 반복문에 사용되는 변수로, 0부터 4까지의 숫자를 순서대로 갖습니다. 반복되는 코드 블록이 1회 실행될 때마다 i의 값은 1씩 증가합니다.

  • range는 일련의 숫자를 생성하는 함수로, range(4)는 0부터 3까지의 숫자를 생성합니다.

  • 위 반복문은 i가 0, 1, 2, 3일 때 print(i)를 실행해 0, 1, 2, 3을 출력합니다.


파이썬 들여쓰기 규칙

  • 일반적으로 공백(Whitespace) 4개 또는 탭(Tab) 1개를 사용합니다.

  • 같은 블록의 코드는 모두 동일한 수준의 들여쓰기를 해야 합니다. 아래 코드 예시의 if와 else는 같은 수준의 조건문이므로, 동일한 수준으로 들여쓰기를 했습니다.

  • 중첩된 코드 블록은 추가적으로 들여쓰기 합니다. 예를 들어, 아래 코드 예시의 if 블록 내부에 있는 print 함수는 한 번 더 들여쓰기를 했습니다.

들여쓰기 규칙 예시
def greet(name):
# 함수 본문을 구분하기 인한 들여쓰기
# name의 값이 존재할 경우 실행되는 조건문 코드 블록
if name:
# if 블록 내부의 코드는 한번 더 들여씀
print("이름:", name)

# name의 값이 없을 경우 실행되는 조건문 코드 블록
# else는 if와 동일한 수준의 들여쓰기 사용
else:
print("안녕하세요.")

greet("코드프렌즈")
# "이름: 코드프렌즈" 출력