파이썬 반복문, for문과 while 완벽 정리
"안녕하세요"라는 글자를 화면에 100번 출력해야 한다고 생각해보세요.
print("안녕하세요")를 100번 복사해서 붙여넣기? 가능은 한데, 솔직히 상상만 해도 끔찍하잖아요. 게다가 100번이 1000번이 되면요. 그래서 프로그래밍에는 반복문이라는 아주 고마운 친구가 있어요.
지난 글에서 조건문(if/elif/else)으로 상황에 따라 다른 일을 시키는 법을 배웠잖아요. 이번엔 같은 일을 여러 번 시키는 방법이에요.
파이썬 반복문이 왜 필요할까
반복문은 쉽게 말해 "같은 코드를 여러 번 실행해줘"라고 시키는 문법이에요. 코드 양은 확 줄고, 나중에 수정할 때도 한 줄만 고치면 되거든요.
파이썬에서 반복문은 크게 두 가지예요. for문과 while문. 둘 다 반복이라는 건 똑같은데, 쓰는 상황이 살짝 달라요.
python for문 기본 문법
for문은 출석부를 들고 이름을 한 명씩 부르는 느낌이에요. 상자에 들어있는 걸 하나씩 꺼내서 처리하는 구조죠.
for i in range(5): # 0, 1, 2, 3, 4를 하나씩 꺼냄
print(i) # 꺼낸 값을 출력
실행 결과:
0
1
2
3
4
어? 1부터 5가 아니라 0부터 4가 나오죠.
저도 처음에 이거 보고 한참 헤맸거든요. 파이썬은 0부터 세기 시작해요. 그리고 range(5)의 5는 "5 미만까지"라는 뜻이라 5는 포함되지 않아요.
range 함수 제대로 이해하기
range는 범위를 만들어주는 함수예요. 자주 쓰는 형태만 알아두시면 돼요.
| 형태 | 만들어지는 숫자 |
|---|---|
range(5) |
0, 1, 2, 3, 4 |
range(1, 6) |
1, 2, 3, 4, 5 |
range(0, 10, 2) |
0, 2, 4, 6, 8 |
"1부터 5까지" 반복하고 싶으시면 range(1, 6)이에요. 끝 숫자는 미만, 이것만 기억하세요.
리스트 맛보기
for문은 사실 숫자 말고 다른 것도 하나씩 꺼낼 수 있어요.
fruits = ["사과", "바나나", "포도"] # 과일들이 담긴 상자
for fruit in fruits: # 상자에서 하나씩 꺼냄
print(fruit, "좋아해요")
실행 결과:
사과 좋아해요
바나나 좋아해요
포도 좋아해요
여기서 ["사과", "바나나", "포도"]처럼 대괄호로 묶인 게 바로 리스트예요. 지금은 "여러 개를 담는 상자구나" 정도로만 이해하셔도 충분해요. 리스트는 다음 글에서 제대로 다룰 거거든요.
파이썬 while 문 사용법
while은 조건이 참인 동안 계속 반복해요. "라면 물이 끓을 때까지 기다리기" 같은 느낌이죠.
count = 5 # 시작 숫자
while count > 0: # count가 0보다 큰 동안 반복
print(count) # 현재 숫자 출력
count = count - 1 # 1씩 줄이기 (이거 빠지면 큰일 남)
print("발사!")
실행 결과:
5
4
3
2
1
발사!
여기서 count = count - 1을 빼먹으시면 어떻게 될까요? count가 영원히 5라서 조건이 절대 False가 안 돼요. 그러면 프로그램이 무한히 5만 출력합니다. 이걸 무한루프라고 해요.
저도 처음에 이거 한번 당하고 나서 Ctrl+C로 겨우 멈췄던 기억이 있어요. 당황하지 마시고 Ctrl+C 누르시면 됩니다.
for vs while 언제 뭘 써야 할까
한 줄 기준을 알려드릴게요.
몇 번 반복할지 알면 for, 모르면 while.
"5번 인사하기", "리스트 하나씩 처리하기"는 for. "정답 맞힐 때까지 입력받기", "파일 끝까지 읽기"는 while. 이렇게 생각하시면 편해요.
break와 continue로 반복 제어하기
반복 중간에 빠져나오거나, 한 번만 건너뛰고 싶을 때 쓰는 친구들이에요.
for i in range(1, 11): # 1부터 10까지
if i == 7: # 7이 나오면
print("찾았다!")
break # 반복 완전히 종료
print(i)
break는 반복문을 통째로 탈출해요. 책 읽다가 원하는 페이지 찾으면 바로 덮는 느낌이죠.
for i in range(1, 11): # 1부터 10까지
if i % 2 == 0: # 짝수면
continue # 이번 회차 건너뛰기
print(i) # 홀수만 출력됨
continue는 이번 턴만 스킵해요. 나머지는 계속 돌아갑니다. 실행하면 1, 3, 5, 7, 9만 출력돼요.
초보자가 자주 만나는 에러
1. 콜론 빠뜨리기
for i in range(5) # 끝에 콜론(:) 없음
print(i)
SyntaxError: expected ':' 라는 에러가 납니다. for와 while 뒤엔 꼭 콜론.
2. 들여쓰기 빠뜨리기
반복문 다음 줄은 스페이스 4칸 들여쓰기예요. 이게 빠지면 파이썬이 "어디까지가 반복이야?"라며 화를 냅니다.
3. 무한루프
while에서 조건을 바꿔주는 코드를 꼭 블록 안에 넣으세요. 카운트다운인데 count를 안 줄이면 영원히 끝나지 않아요.
실습 과제
직접 해보셔야 진짜 실력이 늘어요. 두 개만 도전해보세요.
for문으로 1부터 10까지 더한 합계를 출력하기 (힌트:total = 0으로 시작해서 계속 더하기)- 숫자를 계속 입력받다가
0이 입력되면 멈추는 프로그램 만들기 (while사용)
막히시면 댓글로 남겨주세요. 같이 풀어봐요.
아까 for문 예제에서 ["사과", "바나나", "포도"]라는 대괄호 뭉치 기억하시죠. 그게 바로 다음 글에서 제대로 파볼 리스트예요. 파이썬에서 정말 자주 쓰는 자료형이라 한 편을 통째로 할애할 가치가 있거든요.
제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀
'Application > Python' 카테고리의 다른 글
| [Python] 파이썬 튜플과 딕셔너리, 한 번에 정리 (0) | 2026.04.23 |
|---|---|
| [Python] 파이썬 리스트 완벽 정리: 초보도 한 번에 이해하는 python list 사용법 (0) | 2026.04.22 |
| [Python] 파이썬 조건문: if, elif, else 쉽게 이해하기 (0) | 2026.04.18 |
| [Python] 파이썬 input 함수, 사용자 입력 받는 법 완벽 정리 (0) | 2026.04.17 |
| [Python] 파이썬 자료형 정리: 숫자, 문자열, 불리언 쉽게 이해하기 (python data type) (0) | 2026.04.16 |