반복문 for — range()로 정해진 횟수만큼 반복하기
지난 화의 while과는 다른 방식으로 반복하는 for 반복문을 배웁니다. range() 함수로 숫자 범위를 만드는 법, 시작값·끝값·증가폭을 조절하는 법, 그리고 합계를 구하는 실전 패턴까지 정리해요.
요즘은 고등학교에서도 코딩을 정규 과목으로 가르치는 시대입니다. 전공자가 아니어도 바이브 코딩(Vibe Coding)이나 생성형 AI(Generative AI)를 활용하면 누구나 그럴듯한 코드 결과물을 만들어낼 수 있게 되었죠.
개발 언어를 접하는, 전공자가 아닌 일반인 입문자가 많아진 것입니다.
이 시리즈는 글쓴이가 실제로 일반인, 고등학생 등 비전공자·입문자에게 파이썬을 가르치면서 정리한 내용들을 교재 형식으로 엮은 글입니다.최대한 쉽고 친절하게 설명하면서도, 컴퓨터와 프로그래밍 언어에 대한 기초 이론까지 함께 짚고 넘어가려 합니다.
고등학생, 비전공자, 완전 입문자도 따라올 수 있게끔 만든 시리즈이고, 실제 과외 수업 자료를 바탕으로 만들어서 학교 시험처럼 개념 확인 문제도 그대로 들어있어요.
중간중간 빈칸 채우기랑 학교 시험 유형 문제가 나오는데, 정답은 바로 안 보이게 접어뒀습니다. 먼저 스스로 생각해본 다음 "보기"를 눌러서 확인해보세요.

지난 화에서 배운 while은 "조건이 참인 동안" 반복을 수행했습니다.
그런데 "5번만 반복하고 싶다"처럼 반복 횟수가 정해져 있을 때는 while보다 더 간단한 방법이 있습니다.
바로 for 반복문이에요.
for는 정해진 범위를 처음부터 끝까지 순서대로 하나씩 순회합니다.
조건이 참인 동안 반복. 언제 반복을 종료할지 조건을 직접 검사해야 함.
정해진 범위를 처음부터 끝까지 반복. 몇 번 반복할지 미리 정해져 있음.
반복할 코드
range(숫자)는 0부터 시작해서 숫자 바로 앞까지의 수를 순서대로 만들어냅니다. 변수에는 매 반복마다 만들어낸 수가 하나씩 들어와요. 예를 들어 range(5)라면 0,1,2,3,4 가 순서대로 변수에 들어오는 것입니다.
print(i)
1
2
3
4
range(5)는 "5까지"가 아니라 "5개의 숫자를, 0부터" 만든다는 뜻입니다. 그래서 0, 1, 2, 3, 4 — 총 5개가 나오고, 5는 포함되지 않습니다. 리스트 인덱스가 0부터 시작하는 것과 같은 원리예요.
print(i)
2
3
4
5
같은 결과를 while로 만들려면 i = 1, while i <= 5:, i = i + 1 세 줄이 따로 필요했습니다. for는 시작값·조건·증가를 range() 안에 한 번에 담아서, 코드가 훨씬 짧아집니다.
- 1부터 10까지 출력하도록 빈칸을 채우시오.
for i in range(1, ):
print(i)
정답
- 다음 코드의 실행 결과를 작성하시오.
for i in range(3):
print("안녕") range(5)가 만들어내는 숫자들을 순서대로 쓰시오.
정답
안녕
안녕
2. 0, 1, 2, 3, 4
range()는 괄호 안에 숫자를 몇 개 넣느냐에 따라 동작이 달라집니다. 여러 개의 파라미터를 받을 수 있다는 뜻입니다.
| 형태 | 의미 | 예시 |
|---|---|---|
range(stop) |
0부터 stop 앞까지, 1씩 증가 | range(5) → 0,1,2,3,4 |
range(start, stop) |
start부터 stop 앞까지, 1씩 증가 | range(3, 8) → 3,4,5,6,7 |
range(start, stop, step) |
start부터 stop 앞까지, step씩 증가 | range(0, 10, 2) → 0,2,4,6,8 |
print(i)
2
4
6
8
step에 음수를 넣으면 거꾸로 셀 수 있습니다. 이때는 start가 stop보다 커야 합니다.
print(i)
4
3
2
1
range(5, 0)처럼 step 없이 start가 stop보다 크면, 아무것도 출력되지 않습니다. range는 기본적으로 "증가"하는 방향을 디폴트로 하기 때문에 거꾸로 세려면 반드시 step을 -1처럼 음수로 지정해야 합니다.
print(f"2 x {i} = {2*i}")
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
- 10부터 1까지 거꾸로 출력하도록 빈칸을 채우시오.
for i in range(10, 0, ):
print(i)
정답
- 다음 코드의 실행 결과를 작성하시오.
for i in range(2, 11, 2):
print(i) range(start, stop, step)에서 각 값의 역할을 서술하시오.
정답
4
6
8
10
2. start는 시작 숫자, stop은 반복이 멈추는 기준(포함되지 않음), step은 매번 증가(또는 감소)하는 크기입니다.
while과 마찬가지로, for 안에도 if를 넣어서 반복할 때마다 매번 조건을 검사할 수 있습니다. 그리고 반복문에서 정말 자주 쓰이는 패턴이 하나 있는데, 바로 값을 계속 더해나가는 "합계 구하기" 패턴입니다.
if i % 2 == 0:
print(i)
4
6
8
10
for i in range(1, 11):
total = total + i
print(total)
반복문 시작 전에 total = 0처럼 값을 담을 바구니를 0값으로 미리 만들어 둡니다. 이걸 초기화라고 해요. 저금통을 미리 준비해두고, 반복할 때마다 동전을 하나씩 넣는 것과 같습니다. 저금통 없이 동전만 계속 주우면 모은 동전을 담아 둘 곳이 없겠죠.
for i in range(1, 11):
if i % 2 == 0:
total = total + i
print(total)
total = 0이 for문 안에 있으면, 반복될 때마다 total이 매번 0으로 초기화되어 버립니다. 그러면 마지막에 더한 값만 남게 돼요. 초기화는 반드시 반복문 시작 전에 한 번만 해야 합니다.
| while | for | |
|---|---|---|
| 언제 쓰나 | 반복 횟수를 모르거나, 조건에 따라 멈출 때 | 반복 횟수가 정해져 있을 때 |
| 필요한 것 | 시작값, 조건, 증가를 직접 관리 | range()가 시작값·조건·증가를 대신 관리 |
- 다음 코드의 실행 결과를 작성하시오.
total = 0
for i in range(1, 6):
total = total + i
print(total)
정답
- 다음 코드에서 total이 항상 마지막 숫자만 저장하게 되는 이유를 서술하시오.
for i in range(1, 6):
total = 0
total = total + i
print(total)
정답
total = 0이 for문 안에 있어서, 반복될 때마다 total이 0으로 초기화된 뒤 그 반복의 i만 더해집니다. 그래서 이전까지 더한 값은 사라지고, 마지막 반복에서 더한 값(5)만 남습니다.'Language > Python' 카테고리의 다른 글
| [고등학생부터, 파이썬] 10. 리스트(List) (0) | 2026.08.20 |
|---|---|
| [고등학생부터, 파이썬] 09. 중첩 반복문 (feat. 별찍기 예제) (0) | 2026.08.19 |
| [고등학생부터, 파이썬] 07. 반복문 while (0) | 2026.08.10 |
| [고등학생부터, 파이썬] 06. 논리연산자와 중첩 if (0) | 2026.08.05 |
| [고등학생부터, 파이썬] 05. 조건문(if) (0) | 2026.08.04 |
댓글