반복문이란 무엇인가요?
반복문은 같은 작업을 여러 번 수행해야 할 때 사용하는 프로그래밍 도구입니다. 파이썬에서 가장 많이 사용하는 반복문이 바로 for문입니다. for문은 코드를 간결하고 읽기 쉽게 만들어 주는 파이썬의 대표적인 특징 중 하나입니다.
for문의 기본 문법
for문의 기본 구조는 다음과 같습니다:
for 변수명 in 데이터_모음:
실행할_코드1
실행할_코드2
...
여기서 '데이터_모음'은 리스트, 튜플, 문자열 등이 될 수 있습니다. 데이터 모음의 각 요소가 순서대로 변수에 저장되면서 아래의 코드들이 실행됩니다.
기본적인 for문 예제
1. 리스트와 함께 사용하기
# 과일 이름들을 담은 리스트
fruits = ['사과', '바나나', '딸기']
# 각 과일을 하나씩 출력하기
for fruit in fruits:
print(f"맛있는 {fruit}!")
실행 결과:
맛있는 사과!
맛있는 바나나!
맛있는 딸기!
이 코드에서는 fruits 리스트의 각 요소('사과', '바나나', '딸기')가 순서대로 fruit 변수에 저장되면서 print문이 실행됩니다.
2. 문자열과 함께 사용하기
# 문자열의 각 글자를 하나씩 출력
word = "안녕하세요"
for letter in word:
print(f"글자: {letter}")
실행 결과:
글자: 안
글자: 녕
글자: 하
글자: 세
글자: 요
3. 튜플과 함께 사용하기
# 좌표를 나타내는 튜플들의 리스트
coordinates = [(1, 2), (3, 4), (5, 6)]
# 각 좌표의 x, y 값을 분리해서 처리
for x, y in coordinates:
print(f"x좌표: {x}, y좌표: {y}, 합계: {x + y}")
실행 결과:
x좌표: 1, y좌표: 2, 합계: 3
x좌표: 3, y좌표: 4, 합계: 7
x좌표: 5, y좌표: 6, 합계: 11
for문의 실용적인 활용 예제
학생 성적 처리 프로그램
# 학생들의 시험 점수
scores = [85, 45, 92, 38, 76]
# 각 학생의 합격/불합격 판정 (60점 이상 합격)
student_number = 0 # 학생 번호를 매기기 위한 변수
for score in scores:
student_number = student_number + 1 # 학생 번호 증가
if score >= 60: # 60점 이상이면 합격
print(f"{student_number}번 학생: {score}점 - 합격!")
else: # 60점 미만이면 불합격
print(f"{student_number}번 학생: {score}점 - 불합격")
실행 결과:
1번 학생: 85점 - 합격!
2번 학생: 45점 - 불합격
3번 학생: 92점 - 합격!
4번 학생: 38점 - 불합격
5번 학생: 76점 - 합격!
continue문과 함께 사용하기
continue문을 사용하면 특정 조건에서 아래 코드를 건너뛰고 다음 반복으로 넘어갈 수 있습니다.
# 합격한 학생들에게만 축하 메시지 보내기
scores = [85, 45, 92, 38, 76]
student_number = 0
for score in scores:
student_number = student_number + 1
if score < 60: # 불합격인 경우
continue # 아래 코드를 실행하지 않고 다음 반복으로
# 합격한 학생들만 여기 코드가 실행됨
print(f"{student_number}번 학생, 축하합니다! {score}점으로 합격하셨습니다.")
실행 결과:
1번 학생, 축하합니다! 85점으로 합격하셨습니다.
3번 학생, 축하합니다! 92점으로 합격하셨습니다.
5번 학생, 축하합니다! 76점으로 합격하셨습니다.
range 함수와 함께 사용하기
range 함수는 숫자의 범위를 만들어주는 함수로, for문과 함께 자주 사용됩니다.
기본 range 사용법
# 0부터 4까지 출력
for i in range(5):
print(f"숫자: {i}")
실행 결과:
숫자: 0
숫자: 1
숫자: 2
숫자: 3
숫자: 4
시작과 끝 숫자 지정하기
# 1부터 10까지 출력
for i in range(1, 11):
print(f"숫자: {i}")
숫자 더하기 예제
# 1부터 100까지의 합 계산하기
total = 0 # 합계를 저장할 변수
for i in range(1, 101): # 1부터 100까지
total = total + i # 각 숫자를 total에 더하기
print(f"1부터 100까지의 합: {total}")
실행 결과:
1부터 100까지의 합: 5050
range와 리스트 인덱스 활용하기
# 과일 리스트와 인덱스 번호 함께 출력
fruits = ['사과', '바나나', '딸기', '포도', '오렌지']
for i in range(len(fruits)): # len(fruits)는 리스트의 길이(5)
print(f"{i+1}번째 과일: {fruits[i]}")
실행 결과:
1번째 과일: 사과
2번째 과일: 바나나
3번째 과일: 딸기
4번째 과일: 포도
5번째 과일: 오렌지
중첩 for문 사용하기
for문 안에 또 다른 for문을 넣어서 사용할 수 있습니다. 이를 중첩 for문이라고 합니다.
구구단 만들기
# 2단부터 9단까지 구구단 출력
for dan in range(2, 10): # 2부터 9까지 (단)
print(f"\n{dan}단:") # 단 제목 출력
for num in range(1, 10): # 1부터 9까지 (곱할 수)
result = dan * num # 계산 결과
print(f"{dan} × {num} = {result}")
실행 결과:
2단:
2 × 1 = 2
2 × 2 = 4
2 × 3 = 6
...
3단:
3 × 1 = 3
3 × 2 = 6
3 × 3 = 9
...
별 찍기 패턴
# 삼각형 별 패턴 만들기
for i in range(1, 6): # 1부터 5까지 (줄 수)
for j in range(i): # 각 줄마다 i개의 별
print("*", end="") # 줄바꿈 없이 별 출력
print() # 한 줄 완성 후 줄바꿈
실행 결과:
*
**
***
****
*****
리스트 컴프리헨션 - 간단한 리스트 만들기
리스트 컴프리헨션은 for문을 사용해서 새로운 리스트를 만드는 간단한 방법입니다.
기본 사용법
# 1부터 10까지 숫자의 제곱 리스트 만들기
# 일반적인 방법
squares = []
for i in range(1, 11):
squares.append(i * i)
print("일반 방법:", squares)
# 리스트 컴프리헨션 방법
squares_comp = [i * i for i in range(1, 11)]
print("컴프리헨션:", squares_comp)
실행 결과:
일반 방법: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
컴프리헨션: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
조건을 포함한 리스트 컴프리헨션
# 1부터 20까지 숫자 중 짝수만 골라서 2배 하기
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 짝수만 골라서 2배 하기
even_doubled = [num * 2 for num in numbers if num % 2 == 0]
print("짝수를 2배한 결과:", even_doubled)
# 홀수만 골라서 제곱하기
odd_squared = [num * num for num in numbers if num % 2 == 1]
print("홀수를 제곱한 결과:", odd_squared)
실행 결과:
짝수를 2배한 결과: [4, 8, 12, 16, 20]
홀수를 제곱한 결과: [1, 9, 25, 49, 81]
실용적인 예제들
1. 단어 길이 세기
# 문장에서 각 단어의 길이 계산
sentence = ["파이썬", "프로그래밍", "재미있어요", "열심히", "공부해요"]
for word in sentence:
length = len(word) # 단어의 길이 계산
print(f"'{word}'의 길이: {length}글자")
2. 쇼핑 목록과 가격 계산
# 쇼핑 목록과 가격 (튜플로 구성)
shopping_list = [
("사과", 3000),
("바나나", 2000),
("우유", 2500),
("빵", 1500)
]
total_price = 0 # 총 가격
print("=== 쇼핑 목록 ===")
for item, price in shopping_list:
print(f"{item}: {price}원")
total_price = total_price + price # 총 가격에 추가
print(f"\n총 가격: {total_price}원")
3. 숫자 맞추기 게임 점수 계산
# 게임 점수 리스트
game_scores = [450, 320, 780, 290, 650]
print("=== 게임 결과 ===")
round_number = 0
high_score = 0 # 최고 점수 저장
for score in game_scores:
round_number = round_number + 1
print(f"{round_number}라운드: {score}점")
# 최고 점수 업데이트
if score > high_score:
high_score = score
best_round = round_number
print(f"\n최고 점수: {high_score}점 ({best_round}라운드)")
자주 하는 실수와 주의사항
1. 들여쓰기 주의하기
# 올바른 들여쓰기
for i in range(3):
print("안쪽 코드")
print("이것도 안쪽 코드")
print("바깥쪽 코드")
# 잘못된 들여쓰기 - 오류 발생!
# for i in range(3):
# print("들여쓰기 안 됨") # IndentationError 발생
2. 변수명 잘 정하기
# 좋은 변수명 사용
students = ["김철수", "이영희", "박민수"]
for student_name in students:
print(f"학생: {student_name}")
# 의미 없는 변수명보다는 명확한 변수명이 좋습니다
for i in students: # i보다는
print(f"학생: {i}")
for name in students: # name이 더 명확합니다
print(f"학생: {name}")
마무리
for문은 파이썬에서 가장 자주 사용하는 제어문 중 하나입니다. 리스트, 튜플, 문자열 등 다양한 데이터와 함께 사용할 수 있고, range 함수와 결합하면 더욱 강력한 기능을 만들 수 있습니다.
중첩 for문과 리스트 컴프리헨션까지 익히면 복잡한 데이터 처리도 간단하게 할 수 있습니다. 많은 연습을 통해 for문을 자유자재로 사용할 수 있도록 노력해보세요.
중요한 것은 코드를 읽기 쉽게 작성하는 것입니다. 변수명을 명확하게 짓고, 들여쓰기를 정확하게 하며, 필요한 곳에 주석을 달아서 나중에 다시 봐도 이해할 수 있는 코드를 작성하는 습관을 기르시기 바랍니다.
'파이썬' 카테고리의 다른 글
12. 파이썬 함수 기초부터 응용까지 한번에 끝내기. (0) | 2025.05.29 |
---|---|
10. 파이썬 반복문 마스터하기: while문 완전 정복 (1) | 2025.05.27 |
9. 파이썬 조건문 (IF문) 완벽히 이해하기. 예제로 배우는 코딩공부. (0) | 2025.05.27 |
8. 파이썬 변수와 메모리 관리 완벽 가이드 (0) | 2025.05.26 |
7. 파이썬 불린(Boolean) 자료형에 대해서 공부하기 (0) | 2025.05.26 |