개발/python

파이썬 반복문 for while 사용법 쉽게 이해하기

notebase 2026. 5. 21. 19:03

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

number4가 되는 순간 반복문이 바로 종료됩니다.

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()와 조건식의 동작까지 익히면, 리스트와 문자열을 다루는 반복문부터 간단한 조건 반복까지 자연스럽게 연결할 수 있습니다.