바이브코더를 위한 파이썬 기초

바이브코더를 위한 파이썬 기초 4편: 반복문 for·while과 range의 함정

파이썬 반복문 for·range·while로 같은 일을 반복시키는 법. range 끝 값이 빠지는 한 칸 차이 실수, 끝나지 않는 while과 Ctrl+C, AI 반복문 검사법을 정리했다.

바이브코더를 위한 파이썬 기초 4편: 반복문 for·while과 range의 함정

파일 100개의 이름을 바꾸거나, 목록에 있는 상품 가격을 모두 더하는 일은 사람이 하면 지루하지만 컴퓨터에게는 몇 줄이면 된다. AI가 짜 주는 자동화 코드에는 반복문이 자주 들어간다. 이 글은 '바이브코더를 위한 파이썬 기초' 10편 중 4편으로, for와 range, while을 정리하고 반복문에서 자주 나오는 두 가지 실수(끝 값 한 칸 차이, 끝나지 않는 반복)를 다룬다. 예제는 Python 3.15 기준으로 설명하며 Python 3.14.2에서 실행해 결과를 확인했다.

어두운 배경 위 둥글게 도는 컨베이어 벨트에 같은 모양의 빛나는 상자가 실려 가고 옆에 정지 스위치가 있는 일러스트

핵심 요약

  • for는 정해진 횟수나 정해진 목록만큼 반복하고, while은 조건이 참인 동안 반복한다.
  • range(시작, 끝)은 끝 값을 포함하지 않는다. range(1, 6)은 1부터 5까지다.
  • while은 조건을 바꾸는 코드가 안에 있어야 끝난다. 없으면 영원히 돈다.
  • 끝나지 않는 프로그램은 터미널에서 Ctrl+C로 멈춘다.

반복문은 컨베이어 벨트다

팔굽혀펴기 10회를 할 때 옆에서 "하나, 둘, 셋…"을 세 주는 사람이 있으면 몸에만 집중할 수 있다. 반복문이 그 역할을 한다. 몇 번째인지 기억하는 일은 파이썬이 맡는다.

컨베이어 벨트 위 상자를 하나씩 처리하는 모습을 떠올리면 된다. 다만 한계가 있다. for는 상자가 다 지나가면 알아서 멈추지만, while은 벨트를 멈추는 스위치를 직접 달지 않으면 영원히 돈다.

for와 range: 정해진 만큼 반복

total = 0
for n in range(1, 6):
    total = total + n
print(total)
15

for n in range(1, 6):은 "1, 2, 3, 4, 5를 차례로 n에 붙여 가며 아래 들여쓴 줄을 실행하라"는 뜻이다. 그래서 total은 1+2+3+4+5 = 15가 된다. 2편에서 본 total = total + n이 반복마다 합을 새로 고친다.

for는 숫자뿐 아니라 목록도 훑을 수 있다. 5편에서 다룰 리스트를 미리 보면, for f in fruits:는 과일 목록을 하나씩 꺼내 f에 붙인다. AI 코드의 for file in files:, for row in rows: 같은 줄이 모두 이 모양이다.

while: 조건이 참인 동안 반복

count = 3
while count > 0:
    print(count)
    count -= 1
print("발사!")
3
2
1
발사!

count -= 1은 count = count - 1을 줄여 쓴 것이다. 반복할 때마다 count가 1씩 줄고, 0이 되면 count > 0이 거짓이 되어 반복이 끝난다. 이 줄이 바로 벨트를 멈추는 스위치다.

흔한 함정 1: range(1, 6)은 1부터 6까지일까

print(list(range(1, 6)))
[1, 2, 3, 4, 5]

끝 값 6은 빠진다. "1부터 100까지 더해 줘"를 코드로 쓰면 range(1, 101)이어야 한다. range(1, 100)으로 쓰면 100이 빠져 결과가 4950이 된다. 이렇게 한 칸 차이로 생기는 실수는 오류 메시지 없이 결과만 조금 틀리게 만든다.

AI 코드에 range가 보이면 "마지막 값이 포함되어야 하는가"를 꼭 확인하자. 시작 값을 생략한 range(5)는 0, 1, 2, 3, 4다.

흔한 함정 2: 끝나지 않는 while

while count > 0: 안에서 count를 바꾸는 줄이 빠지면 조건이 계속 참이라 무한 반복한다. 화면이 같은 출력으로 가득 차거나, 아무 반응 없이 멈춘 것처럼 보인다.

  • 멈추는 법: 터미널에서 Ctrl+C를 누른다.
  • 진단: while 블록 안에 조건에 쓰인 변수를 바꾸는 줄이 있는지 본다.
  • AI 코드에 while True:가 있다면 안쪽에 break(반복을 빠져나오는 명령)나 return처럼 빠져나오는 길이 있는지 본다. 서버처럼 일부러 계속 도는 프로그램이 아니라면, 어떤 상황에서 빠져나오는지 확인한다.

AI 반복문 코드를 검사하는 법

  • 몇 번 도는가? 반복 횟수를 말로 설명해 본다. "파일 개수만큼", "5번" 등.
  • 끝 값이 포함되는가? range의 끝 값을 확인한다.
  • 어떻게 끝나는가? while이라면 멈추는 조건과 그 조건을 바꾸는 줄을 찾는다.
  • 작게 먼저 돌려 본다. 파일 1,000개를 처리하는 코드라면 AI에게 "처음 3개만 처리하고 결과를 출력하는 테스트 버전도 만들어 줘"라고 요청한다.

스스로 확인하기

  1. list(range(2, 5))의 결과는? → [2, 3, 4]. 시작은 포함, 끝은 제외다.
  2. while count > 0: 안에서 count를 바꾸지 않으면? → 끝나지 않고 계속 반복한다. Ctrl+C로 멈춘다.

직접 해 보기

1부터 100까지의 합을 구해 보자. 결과가 5050이면 성공이다. 4950이 나오면 range의 끝 값을 다시 확인한다.

total = 0
for n in range(1, 101):
    total = total + n
print(total)
5050

이전 편과 다음 편

시리즈 전체 목록은 10편 끝에 모아 두었다.

목록으로