반복 작업 for와 while

지난 글에서는 조건에 따라 코드를 실행하는 if문을 살펴봤어요. 이번에는 한 걸음 더 나아가, 같은 일을 여러 번 시키는 반복문을 알아보겠습니다. 숫자를 하나씩 출력하거나 목록에 있는 항목을 차례대로 처리할 때 유용하죠. 매번 코드를 복사해 붙이는 수고를 줄여 주는 문법입니다.

반복문은 같은 일을 대신 해준다

반복문이 반복 작업을 처리하는 흐름

가령 “안녕”을 다섯 번 출력하고 싶다고 해볼게요. print("안녕")을 다섯 줄 쓰는 방법도 있겠지만, 횟수가 바뀌면 줄을 더 쓰거나 지워야 합니다. 반복문을 쓰면 한 번 작성한 일을 원하는 만큼 되풀이할 수 있어요.

파이썬에서 반복문 본문은 콜론 다음 줄에 들여쓰기해서 씁니다. 앞에서 본 if문과 모양이 비슷하죠. if는 조건이 참일 때 한 번 실행하고, 반복문은 정해진 대상이나 조건에 따라 여러 번 실행한다는 차이가 있습니다.

for _ in range(5):
    print("안녕")

여기서 _는 반복 횟수만 필요하고 그 숫자를 코드에서 따로 쓰지는 않을 때 자주 쓰는 이름입니다. 익숙해지기 전이라면 for count in range(5):처럼 의미가 드러나는 이름을 써도 괜찮아요.

횟수나 목록이 정해졌다면 for

for문으로 범위의 숫자를 차례대로 처리하는 모습

for문은 반복할 대상이 정해져 있을 때 편합니다. 예를 들어 1부터 3까지 출력해 볼까요?

for number in range(1, 4):
    print(number)

화면에는 1, 2, 3이 차례로 나옵니다. range(1, 4)는 1부터 시작해 4 바로 전까지 숫자를 만들어 줘요. 끝 숫자는 포함하지 않는다는 점이 처음에는 은근히 헷갈립니다. 저도 예전에 1부터 4까지 나오겠지 하고 코드를 짰다가, 마지막 숫자가 안 보여서 한참 쳐다봤어요. 범위의 끝은 문 앞에서 멈춘다고 기억하면 편합니다.

목록처럼 여러 값이 담긴 대상도 하나씩 꺼내 처리할 수 있습니다.

for fruit in ["사과", "바나나", "포도"]:
    print(fruit)

목록은 다음 편에서 자세히 다룰 예정이지만, 지금은 “여러 값을 차례대로 건네준다” 정도로 이해하면 충분해요. 대상이 정해져 있거나 몇 번 반복할지 알고 있다면 for를 먼저 떠올려 보세요.

조건이 계속 참인 동안은 while

while문 반복을 확인하는 간단한 점검표

while문은 어떤 조건이 참인 동안 계속 실행합니다. 반복 횟수보다 “언제까지 할지”가 중요할 때 잘 맞아요.

count = 1
while count <= 3:
    print(count)
    count += 1

조건이 참인지 확인하고, 참이면 안쪽 코드를 실행합니다. count += 1은 count = count + 1과 같은 뜻이에요. 값이 1씩 올라가다가 3을 지나면 조건이 거짓이 되어 반복이 끝납니다.

여기서 꼭 챙길 건 조건을 바꾸는 코드예요. 만약 count += 1을 빼면 count는 계속 1이고, count <= 3도 계속 참이겠죠. 그러면 프로그램이 끝없이 돌아갈 수 있습니다. 음... 출력창에 같은 문장이 멈추지 않고 쏟아진다면, 반복 조건과 그 값을 바꾸는 부분부터 확인해 보세요. 실행 중인 프로그램을 중단하는 방법을 알아 두면 당황하지 않고 멈출 수도 있습니다.

반복을 건너뛰거나 멈추기

반복문에서 continue와 break가 동작하는 화면

반복문 안에서는 continue와 break도 자주 만납니다. continue는 이번 차례를 건너뛰고 다음 차례로 넘어가고, break는 반복문 전체를 끝냅니다.

for number in range(1, 6):
    if number == 3:
        continue
    if number == 5:
        break
    print(number)

이 코드는 1, 2, 4를 출력합니다. 3일 때는 continue가 출력 줄을 건너뛰게 하고, 5일 때는 break가 반복문을 끝내기 때문이에요. if문이 반복문 안에서 특정 차례만 골라 처리하는 모습도 확인할 수 있죠.

다만 처음부터 break와 continue를 여기저기 넣으면 코드 흐름을 따라가기 어려울 수 있어요. 우선 반복 조건과 반복할 내용을 간단히 적고, 정말 필요할 때 추가해 봅시다.

내 상황에는 어떤 문을 쓸까?

정리하면, 반복할 대상이나 횟수가 정해져 있으면 for, 조건이 참인 동안 이어 가야 하면 while이 자연스럽습니다. 둘 다 쓸 수 있는 상황도 많지만, 코드가 말하려는 내용이 더 잘 보이는 쪽을 고르면 돼요.

상황 먼저 생각할 문법
정해진 횟수만큼 실행 for와 range
목록의 항목을 차례로 처리 for
조건을 만족하는 동안 반복 while
이번 차례 건너뛰기 continue
반복을 바로 끝내기 break

반복문은 코드 양을 줄여 줄 뿐 아니라, 반복 작업의 규칙을 한곳에서 관리하게 해 줍니다. 그 대신 반복 조건과 들여쓰기를 잘못 쓰면 예상과 다른 결과가 나올 수 있으니, 작은 예제로 실행 흐름을 확인하는 습관도 도움이 돼요.

다음 글에서는 프로그램이 바깥에서 값을 받아오고 결과를 보여 주는 입력과 출력을 다뤄 보겠습니다. 반복문을 입력과 함께 쓰면 사용자가 원하는 만큼 작업을 이어 가는 프로그램도 만들 수 있어요. 이제 코드를 직접 실행해 볼 준비가 조금씩 되어 가네요!

AIWD 소모임AI 자동화 오픈톡