if 조건문으로 흐름을 나눴다면, 이제 파이썬 반복문으로 같은 작업을 여러 번 실행하는 방법을 익힐 차례입니다.
반복할 대상이 정해져 있으면 for문, 조건이 참인 동안 계속 실행해야 하면 while문이 더 잘 맞습니다.
처음에는 두 문법이 비슷해 보여도, 언제 어떤 문법을 써야 하는지 구분해두면 코드가 훨씬 읽기 쉬워집니다.
반복문이 필요한 이유
같은 코드를 여러 번 써야 할 때 반복문이 필요합니다.
예를 들어 같은 문장을 세 번 출력한다고 해서 아래처럼 직접 세 줄을 쓰는 방식은 금방 불편해집니다.
print("안녕하세요")
print("안녕하세요")
print("안녕하세요")
이런 작업은 반복문으로 더 간단하게 표현할 수 있습니다.
for i in range(3):
print("안녕하세요")
실행 결과:
안녕하세요
안녕하세요
안녕하세요
반복문을 사용하면 코드 길이가 줄고, 같은 작업을 여러 번 처리할 때 실수도 줄일 수 있습니다.
for문 기본 구조
for문은 반복할 대상에서 값을 하나씩 꺼내며 실행합니다.
기본 형태는 아래와 같습니다.
for 변수 in 반복할대상:
실행할 코드
간단한 예제를 보면 더 이해하기 쉽습니다.
for number in [1, 2, 3]:
print(number)
실행 결과:
1
2
3
위 코드는 리스트 안의 값을 하나씩 꺼내서 number에 넣고 출력합니다.
리스트와 함께 사용하는 for문
리스트는 for문과 가장 자주 함께 쓰는 자료형입니다.
fruits = ["사과", "바나나", "딸기"]
for fruit in fruits:
print(fruit)
실행 결과:
사과
바나나
딸기
리스트 안의 값을 처음부터 끝까지 한 번씩 확인하고 싶을 때 for문이 자연스럽습니다.
문자열과 함께 사용하는 for문
문자열도 글자들이 순서대로 들어 있기 때문에 for문으로 한 글자씩 꺼낼 수 있습니다.
for letter in "Python":
print(letter)
실행 결과:
P
y
t
h
o
n
문자열을 한 글자씩 검사하거나, 특정 글자가 있는지 확인하는 기초 연습에 자주 사용합니다.
range() 사용법
반복 횟수가 정해져 있을 때는 range()를 많이 사용합니다.
for number in range(5):
print(number)
실행 결과:
0
1
2
3
4
range(5)는 0부터 시작해서 5 바로 전까지 숫자를 만듭니다.
즉, 5번 반복하고 싶을 때 자주 사용하는 형태입니다.
range(start, stop)
시작 숫자를 직접 정하고 싶다면 range(start, stop) 형태로 쓸 수 있습니다.
for number in range(1, 5):
print(number)
실행 결과:
1
2
3
4
여기서 중요한 점은 stop 값인 5는 포함되지 않는다는 것입니다.
처음에는 1부터 5까지라고 생각하기 쉬운데, 실제로는 1부터 4까지입니다.
range(start, stop, step)
한 번에 얼마나 증가할지도 정할 수 있습니다.
for number in range(1, 10, 2):
print(number)
실행 결과:
1
3
5
7
9
step은 숫자가 얼마나씩 건너뛸지를 뜻합니다.
위 예제는 1부터 시작해서 2씩 증가하며 10 전까지 반복합니다.
while문 기본 구조
while문은 조건식이 참인 동안 계속 실행됩니다.
기본 형태는 아래와 같습니다.
while 조건식:
실행할 코드
예제를 보면 for문과 차이가 더 분명해집니다.
count = 1
while count <= 3:
print(count)
count += 1
실행 결과:
1
2
3
이 코드는 count <= 3이 참일 동안 반복하고, 반복할 때마다 count 값을 1씩 늘립니다.
while문에서 조건식이 중요한 이유
while문은 반복 횟수보다 조건이 언제 거짓이 되는지가 더 중요합니다.
위 예제에서 count += 1이 없다면 count는 계속 1인 상태로 남습니다.
그러면 count <= 3은 계속 참이 되고, 반복문은 끝나지 않습니다.
즉, while문에서는 조건식뿐 아니라 조건에 영향을 주는 값이 반복 안에서 바뀌는지도 함께 봐야 합니다.
무한 반복 주의
while문을 처음 배울 때 가장 자주 하는 실수 중 하나가 무한 반복입니다.
아래 코드는 반복이 끝나지 않습니다.
count = 1
while count <= 3:
print(count)
이유는 count 값이 변하지 않기 때문입니다.
while문을 쓸 때는 "이 반복이 언제 끝나는가?"를 먼저 확인하는 습관이 필요합니다.
break 사용법
break는 반복문을 즉시 끝낼 때 사용합니다.
for number in [1, 2, 3, 4, 5]:
if number == 4:
break
print(number)
실행 결과:
1
2
3
number가 4가 되는 순간 반복문이 바로 종료됩니다.
for문과 while문 모두에서 사용할 수 있습니다.
continue 사용법
continue는 반복문을 끝내는 것이 아니라, 이번 차례만 건너뛰고 다음 반복으로 넘어갈 때 사용합니다.
fruits = ["사과", "바나나", "딸기"]
for fruit in fruits:
if fruit == "바나나":
continue
print(fruit)
실행 결과:
사과
딸기
바나나일 때는 print()를 실행하지 않고 다음 값으로 넘어간 것입니다.
for문과 while문의 차이
두 반복문은 모두 같은 작업을 여러 번 실행할 때 쓰지만 기준이 다릅니다.
for문은 반복할 대상이나 횟수가 비교적 분명할 때 사용합니다.while문은 조건이 참인 동안 계속 실행해야 할 때 사용합니다.
짧게 정리하면 아래처럼 볼 수 있습니다.
for문: 리스트, 문자열, range()처럼 반복할 대상이 보일 때
while문: 조건이 언제 거짓이 되는지가 더 중요할 때
for문을 쓰기 좋은 경우
아래처럼 반복할 대상이 이미 정해져 있으면 for문이 더 간단합니다.
- 리스트 값을 하나씩 확인할 때
- 문자열을 한 글자씩 볼 때
range()로 정해진 횟수만큼 반복할 때
예를 들어 학생 점수를 순서대로 출력하는 작업은 for문이 잘 맞습니다.
while문을 쓰기 좋은 경우
반복 횟수를 미리 딱 잘라 말하기보다, 어떤 조건이 바뀔 때까지 계속 돌아야 하면 while문이 편합니다.
- 숫자가 특정 값이 될 때까지 줄이거나 늘릴 때
- 어떤 상태가 바뀔 때까지 반복할 때
- 반복 종료 시점이 조건에 따라 달라질 때
예를 들어 카운트다운처럼 값이 계속 바뀌면서 조건이 달라지는 작업은 while문으로 자주 표현합니다.
자주 발생하는 오류
숫자를 바로 for문에 넣는 경우
아래 코드는 초보자가 자주 헷갈리는 형태입니다.
for i in 3:
print(i)
숫자 3 자체는 반복할 대상이 아니기 때문에 오류가 납니다.
반복 횟수를 정하고 싶다면 range(3)처럼 써야 합니다.
for i in range(3):
print(i)
실행 결과:
0
1
2
range()의 끝값도 포함된다고 생각하는 경우
for number in range(1, 5):
print(number)
실행 결과:
1
2
3
4
5가 출력되지 않는다는 점을 꼭 기억해야 합니다.
while문 안에서 값을 바꾸지 않는 경우
count = 1
while count <= 3:
print(count)
이 코드는 count가 계속 1이라서 반복이 끝나지 않습니다.
while문에서는 조건을 바꿀 코드가 있는지 항상 같이 확인해야 합니다.
초보자용 예제
먼저 for문 예제입니다. 리스트 안에서 60점 이상인 점수만 출력합니다.
scores = [75, 52, 88, 60]
for score in scores:
if score >= 60:
print(score, "점 통과")
실행 결과:
75 점 통과
88 점 통과
60 점 통과
이번에는 while문 예제입니다. 숫자를 하나씩 줄이며 카운트다운합니다.
count = 3
while count > 0:
print(count)
count -= 1
실행 결과:
3
2
1
이 두 예제만 비교해봐도 for문은 정해진 값들을 순서대로 볼 때, while문은 조건이 바뀌는 흐름을 만들 때 더 어울린다는 점이 보입니다.
정리
파이썬 반복문은 같은 작업을 여러 번 실행할 때 사용하는 기본 문법입니다.
처음 배우는 단계에서는 아래 흐름만 분명히 이해해도 충분합니다.
for문: 반복할 대상이 정해져 있을 때
while문: 조건이 참인 동안 반복할 때
break: 반복을 바로 끝낼 때
continue: 이번 차례만 건너뛸 때
여기에 range()와 조건식의 동작까지 익히면, 리스트와 문자열을 다루는 반복문부터 간단한 조건 반복까지 자연스럽게 연결할 수 있습니다.
'개발 > python' 카테고리의 다른 글
| 파이썬 예외 처리: 오류가 나도 프로그램이 멈추지 않게 하는 방법 (0) | 2026.05.22 |
|---|---|
| 파이썬 함수: 반복되는 코드를 줄이고 재사용하는 방법 (0) | 2026.05.22 |
| 파이썬 조건문 if 사용법 쉽게 이해하기 (0) | 2026.05.21 |
| 파이썬 딕셔너리와 집합 set 쉽게 이해하기 (0) | 2026.05.21 |
| 파이썬 리스트와 튜플 차이 쉽게 이해하기 (0) | 2026.05.21 |