안녕하세요! 지난 시간에는 특정 조건이 참인 동안 코드를 반복 실행하는 while 반복문에 대해 배웠습니다. 이제 프로그램이 반복적인 작업을 수행할 수 있게 되었죠!
이번 시간에는 while 문과 함께 파이썬의 가장 중요한 반복문 중 하나인 for 반복문에 대해 알아보겠습니다. for 문은 "어떤 것들을 하나씩 꺼내면서" 코드를 반복 실행할 때 사용됩니다. 주로 리스트, 문자열 등 여러 요소로 이루어진 데이터(반복 가능한(iterable) 객체)를 다룰 때 매우 유용합니다.
그리고 for 문과 짝꿍처럼 사용되는 range() 함수에 대해서도 자세히 살펴보겠습니다.
Part 1: for 반복문 기본 사용법
for 반복문은 컬렉션(예: 리스트, 문자열)의 각 요소를 순서대로 하나씩 가져와 코드 블록을 실행합니다.
1. 기본 형식
for 변수 in 반복_가능한_객체:
# 각 요소에 대해 반복 실행할 코드
# 이 부분은 들여쓰기(Indentation) 필수!
- 변수: 반복_가능한_객체에서 현재 꺼내온 요소를 저장할 임시 변수입니다. 반복할 때마다 다음 요소가 이 변수에 할당됩니다.
- 반복_가능한_객체: 리스트, 문자열, 튜플 등 여러 요소를 담고 있으며, 순서대로 하나씩 꺼낼 수 있는 데이터입니다.
- : (콜론): for 문 뒤에는 반드시 콜론을 붙여야 합니다.
- 들여쓰기(Indentation): for 문 아래에 실행될 코드는 반드시 들여쓰기를 해야 합니다.
예시: 리스트의 요소 출력하기
# 파일 이름: for_list_example.py
fruits = ["사과", "바나나", "체리"]
# fruits 리스트의 각 요소를 하나씩 꺼내 fruit 변수에 넣고 반복
for fruit in fruits:
print(f"제가 좋아하는 과일은 {fruit}입니다.")
print("과일 목록 출력이 완료되었습니다.")
- fruits 리스트에서 "사과"가 먼저 fruit에 할당되어 첫 번째 반복이 실행됩니다.
- 그다음 "바나나", "체리"가 순서대로 fruit에 할당되어 반복됩니다.
- 리스트의 모든 요소를 다 꺼내면 for 반복문이 종료됩니다.
# 파일 이름: for_list_example.py
fruits = ["사과", "바나나", "체리"]
# fruits 리스트의 각 요소를 하나씩 꺼내 fruit 변수에 넣고 반복
for fruit in fruits:
print(f"제가 좋아하는 과일은 {fruit}입니다.")
print("과일 목록 출력이 완료되었습니다.")
[VS Code 터미널 출력]

2. 문자열의 각 글자 출력하기
- 문자열도 반복 가능한 객체이므로, for 문을 사용하여 문자열의 각 글자(문자)를 하나씩 꺼낼 수 있습니다.
예시:
# 파일 이름: for_string_example.py
word = "Python"
for char in word:
print(f"글자: {char}")
print("문자열 글자 출력이 완료되었습니다.")
# 파일 이름: for_string_example.py
word = "Python"
for char in word:
print(f"글자: {char}")
print("문자열 글자 출력이 완료되었습니다.")
[VS Code 터미널 출력]

Part 2: range() 함수 - 특정 횟수만큼 반복하기
for 문은 리스트나 문자열처럼 이미 정해진 요소들을 순회할 때 강력합니다. 하지만 "10번 반복해라"처럼 특정 횟수만큼 반복하고 싶을 때는 어떻게 해야 할까요? 이럴 때 사용하는 것이 바로 range() 함수입니다.
range() 함수는 특정 범위의 숫자 시퀀스를 생성합니다. 이 시퀀스는 for 문과 함께 사용될 때 매우 유용합니다.
1. range(stop) - 0부터 (stop-1)까지
- 인자를 하나만 주면, 0부터 시작하여 stop 값 바로 앞까지의 정수 시퀀스를 생성합니다.
- 예: range(5)는 0, 1, 2, 3, 4를 의미합니다.
예시:
# 파일 이름: range_stop_example.py
print("0부터 4까지 출력 (range(5)):")
for i in range(5):
print(i)
print("\n--------------------")
print("안녕하세요를 3번 출력:")
for _ in range(3): # 변수 _는 값을 사용하지 않고 단순히 반복 횟수만 필요할 때 관례적으로 사용합니다.
print("안녕하세요!")
# 파일 이름: range_stop_example.py
print("0부터 4까지 출력 (range(5)):")
for i in range(5):
print(i)
print("\n--------------------")
print("안녕하세요를 3번 출력:")
for _ in range(3): # 변수 _는 값을 사용하지 않고 단순히 반복 횟수만 필요할 때 관례적으로 사용합니다.
print("안녕하세요!")
[VS Code 터미널 출력]

2. range(start, stop) - start부터 (stop-1)까지
- 인자를 두 개 주면, start 값부터 시작하여 stop 값 바로 앞까지의 정수 시퀀스를 생성합니다.
예시:
# 파일 이름: range_start_stop_example.py
print("5부터 9까지 출력 (range(5, 10)):")
for i in range(5, 10):
print(i)
print("\n--------------------")
print("10부터 1까지 역순 출력 (range(10, 0, -1)):") # 이 부분은 다음 Part에서 설명
for i in range(10, 0, -1):
print(i)
# 파일 이름: range_start_stop_example.py
print("5부터 9까지 출력 (range(5, 10)):")
for i in range(5, 10):
print(i)
print("\n--------------------")
print("10부터 1까지 역순 출력 (range(10, 0, -1)):")
for i in range(10, 0, -1):
print(i)
[VS Code 터미널 출력]

3. range(start, stop, step) - start부터 (stop-1)까지 step 간격으로
- 인자를 세 개 주면, start 값부터 시작하여 stop 값 바로 앞까지 step 값의 간격으로 정수 시퀀스를 생성합니다.
- step은 양수일 수도 있고, 음수일 수도 있습니다. 음수일 경우 감소하는 시퀀스를 만듭니다.
예시:
# 파일 이름: range_step_example.py
print("0부터 10까지 2씩 증가 (range(0, 11, 2)):")
for i in range(0, 11, 2): # 0, 2, 4, 6, 8, 10
print(i)
print("\n--------------------")
print("10부터 1까지 3씩 감소 (range(10, 0, -3)):")
for i in range(10, 0, -3): # 10, 7, 4, 1
print(i)
# 파일 이름: range_step_example.py
print("0부터 10까지 2씩 증가 (range(0, 11, 2)):")
for i in range(0, 11, 2): # 0, 2, 4, 6, 8, 10
print(i)
print("\n--------------------")
print("10부터 1까지 3씩 감소 (range(10, 0, -3)):")
for i in range(10, 0, -3): # 10, 7, 4, 1
print(i)
[VS Code 터미널 출력]

Part 3: for 문 활용 예제
for 문은 리스트의 요소를 처리하거나, 특정 횟수만큼 반복해야 하는 다양한 상황에서 활용됩니다.
1. 예제: 리스트의 모든 요소에 동일한 작업 수행하기
# 파일 이름: for_list_process.py
prices = [1000, 2500, 700, 3000]
discount_rate = 0.1 # 10% 할인
print("할인된 가격:")
for price in prices:
discounted_price = price * (1 - discount_rate)
print(f"원가: {price}원 -> 할인 가격: {int(discounted_price)}원")
print("모든 상품의 할인 가격 계산 완료.")
# 파일 이름: for_list_process.py
prices = [1000, 2500, 700, 3000]
discount_rate = 0.1 # 10% 할인
print("할인된 가격:")
for price in prices:
discounted_price = price * (1 - discount_rate)
print(f"원가: {price}원 -> 할인 가격: {int(discounted_price)}원")
print("모든 상품의 할인 가격 계산 완료.")
[VS Code 터미널 출력]

2. 예제: 구구단 특정 단 출력하기
for 문과 range() 함수를 활용하여 구구단을 출력해봅시다.
# 파일 이름: for_gugudan.py
dan = 7 # 7단을 출력
print(f"--- {dan}단 ---")
for i in range(1, 10): # 1부터 9까지 반복
result = dan * i
print(f"{dan} x {i} = {result}")
print(f"--- {dan}단 출력 완료 ---")
# 파일 이름: for_gugudan.py
dan = 7 # 7단을 출력
print(f"--- {dan}단 ---")
for i in range(1, 10): # 1부터 9까지 반복
result = dan * i
print(f"{dan} x {i} = {result}")
print(f"--- {dan}단 출력 완료 ---")
[VS Code 터미널 출력]

마무리하며
이번 시간에는 파이썬의 핵심 반복문인 for 문과 숫자를 순차적으로 생성하는 range() 함수에 대해 자세히 알아보았습니다. for 문은 리스트나 문자열 같은 컬렉션의 요소를 하나씩 처리할 때, 그리고 range() 함수와 함께 특정 횟수만큼 반복할 때 매우 강력합니다.
while 문이 "조건이 참인 동안" 반복한다면, for 문은 "정해진 목록의 모든 요소에 대해" 반복한다는 차이점을 기억해주세요. 두 반복문 모두 프로그램의 흐름을 제어하는 데 필수적입니다.
다음 포스팅에서는 반복문을 제어하는 특별한 키워드인 **break와 continue**에 대해 알아보겠습니다.
궁금한 점이 있다면 언제든지 질문해주세요! 다음 포스팅에서 만나요!
'Python' 카테고리의 다른 글
2-6. 중첩 조건문과 반복문 활용 (0) | 2025.06.22 |
---|---|
2-5. break, continue의 사용법 (0) | 2025.06.22 |
2-3. while 반복문 (0) | 2025.06.21 |
2-2. 비교/논리 연산자 활용 조건 판단 (0) | 2025.06.21 |
2-1. if, elif, else 조건문 (0) | 2025.06.20 |