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

파이썬에서 들여쓰기(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("코드프렌즈")
# "이름: 코드프렌즈" 출력