파이썬 기초 완성형 시리즈 · 07장
반복문 · while · for · range · break · continue · 순회 감각
while문과 for문 기초편
같은 작업을 여러 번 정확하게 반복시키는 프로그래밍의 핵심 구조
이 장에서는 프로그램이 같은 동작을 한 번이 아니라 여러 번 반복하도록 만드는 반복문을 다룹니다. while문은 조건이 참인 동안 반복하고, for문은 순서대로 값을 꺼내며 반복합니다. 즉 이 장의 목표는 반복의 기준을 이해하고, 상황에 맞는 반복문을 선택하는 감각을 갖추는 것입니다.
이 장에서 배우는 것
- 반복문이 왜 필요한지 이해합니다.
- while문과 for문의 차이를 익힙니다.
- range()를 활용해 횟수 반복하는 법을 배웁니다.
- break와 continue로 반복 흐름을 제어하는 방법을 익힙니다.
- 초보자가 자주 빠지는 무한 반복과 들여쓰기 실수를 피합니다.
이 장을 끝내면
- 같은 코드를 여러 번 쓰지 않고 반복문으로 줄일 수 있습니다.
- 몇 번 반복할지, 무엇을 순회할지 기준을 구분할 수 있습니다.
- 리스트와 문자열을 for문으로 순회할 수 있습니다.
- 다음 장의 함수와 입력 처리에서 반복 로직을 더 자연스럽게 연결할 수 있습니다.
1
반복문은 귀찮은 일을 기계에게 맡기는 문법입니다
프로그래밍에서 같은 작업을 여러 번 해야 하는 순간은 매우 많습니다. 숫자 1부터 10까지 출력하거나, 학생 이름 목록을 하나씩 보여 주거나, 사용자가 조건을 만족할 때까지 다시 입력받는 일처럼 반복은 거의 모든 프로그램에 들어갑니다. 만약 반복문이 없다면 같은 코드를 똑같이 여러 줄 써야 하고, 그만큼 실수도 늘어날 것입니다.
반복문은 바로 이런 문제를 해결합니다. 핵심은 간단합니다. 어떤 기준으로 반복할지 정하고, 그 기준이 유지되는 동안 같은 구조를 여러 번 실행하는 것입니다. 그래서 반복문은 게으름을 위한 문법이 아니라, 더 정확하고 효율적인 코드를 위한 문법입니다.
한눈에 보는 반복문 선택 기준
while문
조건이 참인 동안 반복
예: 비밀번호가 맞을 때까지 다시 입력받기, count가 10이 될 때까지 증가시키기
for문
정해진 묶음을 순서대로 반복
예: 리스트의 각 요소 출력하기, 문자열의 각 글자 순회하기, range로 횟수 반복하기
while문: 조건이 참인 동안 반복하기
while문은 조건문과 매우 닮았습니다. 차이는 한 번 판단하고 끝나는 것이 아니라, 조건이 계속 참이면 블록을 반복해서 실행한다는 점입니다.
count = 0
while count < 3:
print(count)
count += 1
이 코드는 count가 3보다 작은 동안 0, 1, 2를 출력합니다. 반복이 진행될수록 count 값이 바뀌기 때문에 결국 조건이 거짓이 되고 반복이 멈춥니다.
while문의 핵심 구성
초기값 : 반복 시작 전에 준비하는 값
조건식 : 언제까지 반복할지 정하는 기준
변화 : 반복 중 값이 바뀌는 부분
while문은 이 세 요소 중 하나라도 놓치면 의도와 다르게 동작하기 쉽습니다.
while문의 흐름을 그림처럼 이해하기
STEP 1
초기값 설정
count = 0
STEP 2
조건 검사
count < 3 ?
STEP 3
코드 실행
print(count)
STEP 4
값 변경
count += 1
그다음 다시 STEP 2로 돌아가 조건을 검사합니다. 이 구조가 반복되다가 조건이 거짓이 되면 while문은 종료됩니다.
while문에서 가장 흔한 실수
count = 0
while count < 3:
print(count)
count 값을 바꾸지 않았기 때문에 조건은 계속 참입니다. 그래서 반복이 끝나지 않는 무한 반복이 발생합니다.
수정 예시
count = 0
while count < 3:
print(count)
count += 1
반복마다 값이 바뀌어야 조건이 언젠가 거짓이 되므로, while문을 쓸 때는 반복을 끝내는 장치를 꼭 확인해야 합니다.
for문: 묶인 값을 하나씩 꺼내며 반복하기
for문은 리스트, 문자열, 튜플처럼 여러 값이 들어 있는 자료형을 순서대로 꺼내면서 반복할 때 씁니다. while문이 “조건이 참인 동안”이라면, for문은 정해진 묶음의 요소를 하나씩 방문한다는 느낌에 더 가깝습니다.
fruits = ["사과", "바나나", "포도"]
for fruit in fruits:
print(fruit)
이 코드는 fruits 안의 요소를 앞에서부터 하나씩 fruit 변수에 담아 출력합니다. 즉 for문은 순회 대상이 명확할 때 매우 직관적입니다.
for문의 기본 구조
for 변수 in 반복대상:
실행할 코드
여기서 변수는 매 반복마다 새로운 값을 받습니다. 그래서 반복 대상을 순서대로 읽는 느낌으로 이해하면 쉽습니다.
for문은 다양한 자료형을 순회할 수 있습니다
리스트 순회
nums = [1, 2, 3]
for n in nums:
print(n)
문자열 순회
for ch in "python":
print(ch)
튜플 순회
point = (3, 4)
for value in point:
print(value)
즉 for문은 “순서대로 꺼낼 수 있는 자료형”과 잘 어울립니다. 이후에는 딕셔너리와 집합도 순회하게 되지만, 초반에는 리스트와 문자열부터 익히는 것이 좋습니다.
range()로 횟수 반복하기
for문은 꼭 리스트가 있어야만 쓸 수 있는 것은 아닙니다. 몇 번 반복할지를 정하고 싶을 때는 range() 함수를 자주 씁니다.
기본 예제
for i in range(5):
print(i)
0부터 시작해서 5보다 작은 수까지 반복합니다.
시작값과 끝값 지정
for i in range(1, 6):
print(i)
1부터 시작해서 6보다 작은 수까지, 즉 1~5를 출력합니다.
range의 끝 숫자는 포함되지 않는다는 점을 꼭 기억해야 합니다. 문자열 슬라이싱의 끝이 포함되지 않는 것과 비슷한 감각입니다.
break: 반복을 즉시 끝내기
for n in range(1, 6):
if n == 4:
break
print(n)
n이 4가 되는 순간 반복을 완전히 종료합니다. 검색하다가 원하는 값을 찾았을 때 멈추는 상황과 비슷합니다.
continue: 이번만 건너뛰기
for n in range(1, 6):
if n == 3:
continue
print(n)
n이 3일 때만 출력하지 않고 다음 반복으로 넘어갑니다. 즉 반복 전체를 멈추지 않고 현재 차례만 건너뜁니다.
while문과 for문의 차이를 감각적으로 정리하기
while문이 잘 맞는 상황
- 종료 시점을 조건으로 판단해야 할 때
- 몇 번 반복할지 미리 모를 때
- 사용자 입력을 계속 받아야 할 때
for문이 잘 맞는 상황
- 리스트나 문자열처럼 순회 대상이 있을 때
- 반복 횟수가 비교적 명확할 때
- 코드를 더 간결하고 읽기 쉽게 만들고 싶을 때
초보자가 자주 하는 실수 1
for i in range(5)
print(i)
for문 끝에는 반드시 콜론 : 이 필요합니다. 들여쓰기 역시 빠지면 안 됩니다.
초보자가 자주 하는 실수 2
fruits = ["사과", "바나나"]
for fruits in fruits:
print(fruits)
반복 대상 이름과 반복 변수 이름을 똑같이 쓰면 읽기가 매우 헷갈립니다. 보통 fruit in fruits처럼 단수/복수로 나누면 좋습니다.
짧은 종합 예제
# while문 예제
count = 1
while count <= 3:
print("while:", count)
count += 1
# for문 예제
subjects = ["파이썬", "데이터", "자동화"]
for subject in subjects:
print("for:", subject)
위 코드를 보면 while문은 숫자 조건을 바탕으로 반복하고, for문은 리스트 안의 값을 하나씩 꺼내며 반복합니다. 즉 둘 다 반복문이지만 반복의 기준이 다릅니다.
반복문 사고 흐름 한눈에 보기
STEP 1
반복 기준 정하기
조건인지, 순회 대상인지 결정합니다.
STEP 2
반복 블록 작성
같이 실행될 코드를 들여쓰기 안에 넣습니다.
STEP 3
제어 장치 점검
while은 종료 조건, for는 순회 대상을 확인합니다.
STEP 4
필요시 제어
break, continue로 흐름을 조정합니다.
이 장의 핵심 요약
while문은 조건이 참인 동안 반복한다.
for문은 순회 가능한 값을 하나씩 꺼내며 반복한다.
range()는 횟수 반복을 만들 때 매우 자주 사용된다.
break는 반복 종료, continue는 이번 차례만 건너뛰기다.
체크리스트
□ while문과 for문의 차이를 자신의 말로 설명할 수 있다.
□ while문에서 값 변화가 없으면 무한 반복이 생길 수 있음을 이해했다.
□ for문으로 리스트나 문자열을 직접 순회할 수 있다.
□ break와 continue의 역할 차이를 구분할 수 있다.
미니 연습문제
- while문을 사용해 1부터 5까지 출력하는 코드를 작성해 보세요.
- for문을 사용해 자신의 이름 문자열을 한 글자씩 출력해 보세요.
- range()와 continue를 사용해 1부터 5까지 중 3만 건너뛰고 출력해 보세요.
Next Chapter
08장에서는 함수를 배워, 지금까지 작성한 반복과 조건, 자료형 처리 코드를 의미 있는 기능 단위로 묶는 방법을 익히게 됩니다.
반복문으로 흐름을 다뤘다면, 다음 장에서는 그 흐름을 더 깔끔하게 정리하는 함수로 넘어갑니다.
'학습 자료 글 > 파이썬 시작하기' 카테고리의 다른 글
| [파이썬 기초 시리즈 9]입력과 출력 기초편 (1) | 2026.03.24 |
|---|---|
| [파이썬 기초 시리즈 8]함수 기초편 (0) | 2026.03.23 |
| [파이썬 기초 시리즈 6]불 자료형과 조건문 기초편 (0) | 2026.03.23 |
| [파이썬 기초 시리즈 5]딕셔너리 · 집합 · 키와 값 · 중복 제거 · 검색과 집합 연산 (0) | 2026.03.23 |
| [파이썬 기초 시리즈 4]리스트와 튜플 기초편 (0) | 2026.03.23 |