🐨CoalaCoding
DocsExamplesTry itBoardB반
🐨CoalaCoding

개발자를 위한 한국어 웹 기술 문서

문서

  • JavaScript
  • Web Publishing
  • React
  • Python

커뮤니티

  • 게시판
  • 예제 모음
  • Try it 에디터

기타

  • GitHub
  • 관리자
© 2026 CoalaCoding. All rights reserved.
  • 01_파이썬 기본문법
  • 02_파이썬 변수
  • 03_파이썬 출력
  • 04_파이썬 기본 자료형
  • 05_파이썬 집합 자료형
  • 00-파이썬 바이브 코딩
  • 1회차: 파이썬 소개 & 변수와 자료형
  • 2회차: 연산자 & 문자열
  • 3회차: 조건문
  • 4회차: 반복문
  • 5회차: 함수(Function)
  • 6회차: 리스트 & 딕셔너리
  • 7회차: 파이썬과 UI연결
  • 01_사진수집
  • 02_네이버 영화 리뷰 크롤링
  • 03_PPT작성
  • 04_이메일전송
  • 05-파이썬 챗봇 만들기
  • 06-주식분석보고서
  • 허깅페이스 무료 Inference API - OTT 앱 활용 가이드
  1. 홈
  2. 문서
  3. Backend
  4. Python
  5. 4회차: 반복문

4회차: 반복문

코드 블록의 Try it Yourself 버튼으로 직접 실행할 수 있다.

구문

4회차: 반복문

선수 학습: 3회차 (조건문)


학습 목표

  • 반복문의 개념을 이해한다.
  • for 반복문을 사용할 수 있다.
  • while 반복문을 사용할 수 있다.
  • range() 함수를 다양하게 활용할 수 있다.
  • break / continue 로 반복을 제어할 수 있다.

4.1. 반복문이란?

4.1.1. 왜 반복문이 필요한가?

"안녕하세요"를 5번 출력하고 싶다면 아래처럼 5줄을 써야 한다.

print("안녕하세요")
print("안녕하세요")
print("안녕하세요")
print("안녕하세요")
print("안녕하세요")

만약 100번이라면 100줄을 써야 한다. 이것은 매우 비효율적이다. 반복문(Loop)을 사용하면 이런 반복 작업을 코드 몇 줄로 해결할 수 있다.

for i in range(5):
    print("안녕하세요")

4.1.2. 반복문의 종류

파이썬에서는 두 가지 반복문을 사용한다.

  • for (포): 정해진 횟수나 목록의 끝까지 반복
  • while (와일): 조건이 참(True)인 동안 반복

4.2. for(포) 반복문

4.2.1. for 의 구조

for 변수 in 반복대상:
    반복할 코드

반복대상 에서 값을 하나씩 꺼내어 변수 에 저장하고, 들여쓰기된 코드를 실행한다. 반복대상의 모든 값을 꺼낼 때까지 반복한다.

4.2.2. 리스트를 이용한 for 반복

fruits = ["사과", "바나나", "포도", "딸기"]

for f in fruits:
    print(f)
줄설명
1과일 이름이 담긴 리스트를 선언한다.
3첫 번째 반복: f = "사과"
3두 번째 반복: f = "바나나"
3세 번째 반복: f = "포도"
3네 번째 반복: f = "딸기"
4각 반복마다 f 의 값을 출력한다.

실행 결과

사과
바나나
포도
딸기

4.2.3. 반복마다 번호 붙이기

enumerate(에뉴머레이트) 함수를 사용하면 반복할 때 순서 번호도 함께 얻을 수 있다.

fruits = ["사과", "바나나", "포도"]

for i, f in enumerate(fruits):
    print(f"{i + 1}. {f}")
줄설명
3enumerate(fruits) 는 (0, "사과"), (1, "바나나"), (2, "포도") 를 순서대로 반환한다. i 는 순서 번호, f 는 값이다.
4번호는 0부터 시작하므로 i + 1 을 출력하여 1번부터 표시한다.

실행 결과

1. 사과
2. 바나나
3. 포도

4.3. range(레인지) 함수

4.3.1. range 란?

range() 함수는 정해진 범위의 숫자들을 순서대로 만들어낸다. for 반복문과 함께 자주 사용한다.

4.3.2. range 사용 방법

사용 방법생성되는 숫자설명
range(5)0, 1, 2, 3, 40부터 4까지
range(1, 6)1, 2, 3, 4, 51부터 5까지
range(0, 10, 2)0, 2, 4, 6, 80부터 8까지 2씩 증가
range(10, 0, -1)10, 9, 8, ..., 110부터 1까지 1씩 감소
📝NOTE

range(1, 6) 에서 마지막 숫자 6 은 포함되지 않는다. 1부터 시작하여 6 이 되기 직전인 5 에서 끝난다.

4.3.3. range 기본 예시

for i in range(5):
    print(i)
줄설명
1range(5) 는 0, 1, 2, 3, 4 를 만든다.
2각 반복마다 i 의 값을 출력한다.

실행 결과

0
1
2
3
4

4.3.4. 1부터 시작하기

for i in range(1, 6):
    print(f"{i}번째 반복")
줄설명
1range(1, 6) 은 1, 2, 3, 4, 5 를 만든다.
2각 반복마다 몇 번째인지 출력한다.

실행 결과

1번째 반복
2번째 반복
3번째 반복
4번째 반복
5번째 반복

4.3.5. 증가 폭 설정하기

print("짝수만 출력:")
for i in range(0, 11, 2):
    print(i)

print("카운트다운:")
for i in range(5, 0, -1):
    print(i)
print("발사!")
줄설명
2range(0, 11, 2) 는 0부터 10까지 2씩 증가하며 0, 2, 4, 6, 8, 10 을 만든다.
6range(5, 0, -1) 는 5부터 1까지 1씩 감소하며 5, 4, 3, 2, 1 을 만든다.

실행 결과

짝수만 출력:
0
2
4
6
8
10
카운트다운:
5
4
3
2
1
발사!

4.3.6. 예제: 구구단 출력

n = int(input("출력할 단을 입력하세요: "))

print(f"===== {n}단 =====")
for i in range(1, 10):
    print(f"{n} × {i} = {n * i}")
줄설명
1사용자에게 단(n)을 입력받는다.
3구분선과 제목을 출력한다.
4i 가 1부터 9까지 반복된다.
5각 반복마다 곱셈 결과를 출력한다. {n * i} 에서 n * i 가 자동 계산된다.

4.4. for 반복문과 조건문 결합

for 반복문 안에 if 조건문을 넣으면 특정 조건을 만족하는 경우에만 실행할 수 있다.

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print("짝수 목록:")
for n in numbers:
    if n % 2 == 0:
        print(n)
줄설명
11부터 10까지의 숫자 리스트를 선언한다.
4리스트의 각 숫자를 차례대로 n 에 담는다.
5n % 2 == 0 이면 (짝수이면) 아래 코드를 실행한다.
6짝수인 경우에만 출력한다.

실행 결과

짝수 목록:
2
4
6
8
10

4.5. while(와일) 반복문

4.5.1. while 의 구조

while 은 조건이 True 인 동안 계속 반복한다. 조건이 False 가 되는 순간 반복을 멈춘다.

while 조건:
    반복할 코드

4.5.2. while 기본 예시

count = 0

while count < 5:
    print(f"count = {count}")
    count += 1

print("반복 종료")
줄설명
1count 를 0 으로 초기화한다.
3count < 5 이면 반복한다. 처음에는 0 < 5 이므로 True 이다.
4count 의 현재 값을 출력한다.
5count += 1 로 count 를 1 증가시킨다. 이 줄이 없으면 count 가 영원히 0이어서 무한 반복이 된다.
6count 가 5가 되면 5 < 5 는 False 이므로 반복이 종료된다.
8while 블록 밖이므로 반복이 끝난 뒤 실행된다.

실행 결과

count = 0
count = 1
count = 2
count = 3
count = 4
반복 종료
⚠️WARNING

while 을 사용할 때는 반드시 반복이 언젠가 끝날 수 있도록 조건을 바꾸는 코드를 작성해야 한다. 그렇지 않으면 프로그램이 영원히 실행되는 무한 루프(Infinite Loop) 가 발생한다. 무한 루프가 발생하면 터미널에서 Ctrl + C 를 눌러 강제 종료할 수 있다.

4.5.3. 예제: 몬스터 체력 감소

hp = 100
cnt = 0

while hp > 0:
    hp -= 15
    cnt += 1
    print(f"공격 {cnt}회 | 남은 HP: {max(hp, 0)}")

print(f"총 {cnt}회 공격으로 몬스터 처치!")
줄설명
1~2체력과 공격 횟수를 초기화한다.
4hp > 0 이면 계속 반복한다.
5매 반복마다 체력을 15씩 감소시킨다.
6공격 횟수를 1씩 증가시킨다.
7max(hp, 0) 는 hp 와 0 중 큰 값을 반환하므로 체력이 음수로 표시되지 않는다.
9반복이 끝나면 총 공격 횟수를 출력한다.

실행 결과

공격 1회 | 남은 HP: 85
공격 2회 | 남은 HP: 70
공격 3회 | 남은 HP: 55
공격 4회 | 남은 HP: 40
공격 5회 | 남은 HP: 25
공격 6회 | 남은 HP: 10
공격 7회 | 남은 HP: 0
총 7회 공격으로 몬스터 처치!

4.5.4. while을 이용한 입력 반복

사용자가 올바른 값을 입력할 때까지 계속 요청할 수 있다.

while True:
    age = int(input("나이를 입력하세요 (1~120): "))
    if 1 <= age <= 120:
        print(f"입력된 나이: {age}세")
        break
    else:
        print("올바른 나이를 입력하세요.")
줄설명
1while True 는 조건이 항상 True 이므로 break 를 만날 때까지 무한 반복한다.
2나이를 입력받는다.
31 <= age <= 120 은 나이가 1 이상이고 120 이하인지 검사한다.
5조건이 충족되면 break 로 반복을 종료한다.
7조건이 충족되지 않으면 다시 입력을 요청한다.

4.6. break(브레이크) & continue(컨티뉴)

4.6.1. break — 반복 완전 종료

break 를 만나면 반복문 전체를 즉시 종료한다.

for i in range(1, 11):
    if i == 5:
        print("5에서 멈춤!")
        break
    print(i)

print("for문 종료")
줄설명
1i 가 1부터 10까지 반복한다.
2~4i 가 5가 되면 메시지를 출력하고 break 로 반복 전체를 즉시 종료한다.
5break 가 실행되면 이 줄은 실행되지 않는다.
7for 문이 종료된 후 실행된다.

실행 결과

1
2
3
4
5에서 멈춤!
for문 종료

4.6.2. continue — 이번 반복만 건너뜀

continue 를 만나면 이번 반복의 남은 코드를 건너뛰고 다음 반복으로 넘어간다. 반복 자체는 종료되지 않는다.

for i in range(1, 11):
    if i % 2 == 0:
        continue
    print(i)
줄설명
2~3i 가 짝수이면 continue 로 print(i) 를 건너뛰고 다음 반복으로 간다.
4홀수인 경우에만 이 줄이 실행된다.

실행 결과

1
3
5
7
9

4.6.3. break 와 continue 비교

키워드동작
break반복문 전체 를 즉시 종료한다.
continue이번 반복 의 남은 코드만 건너뛰고, 다음 반복은 계속한다.

4.7. 중첩 반복문

반복문 안에 또 다른 반복문을 넣을 수 있다. 이를 중첩 반복문이라 한다.

for i in range(1, 4):
    for j in range(1, 4):
        print(f"({i}, {j})", end=" ")
    print()
줄설명
1바깥쪽 for 문: i 가 1, 2, 3 을 순서대로 취한다.
2안쪽 for 문: i 하나마다 j 가 1, 2, 3 을 반복한다.
3end=" " 는 출력 후 줄바꿈 대신 공백을 넣는다.
4print() 는 빈 줄을 출력한다. 안쪽 반복이 끝날 때마다 줄을 바꾼다.

실행 결과

(1, 1) (1, 2) (1, 3)
(2, 1) (2, 2) (2, 3)
(3, 1) (3, 2) (3, 3)

4.7.2. 예제: 전체 구구단 출력

for i in range(2, 10):
    print(f"===== {i}단 =====")
    for j in range(1, 10):
        print(f"{i} × {j} = {i * j}")
    print()
줄설명
1바깥 반복: i 가 2부터 9까지 반복한다. (2단~9단)
2각 단의 제목을 출력한다.
3~4안쪽 반복: j 가 1부터 9까지 반복하며 곱셈 결과를 출력한다.
5각 단이 끝날 때마다 빈 줄을 출력한다.

4.8. 실습 과제

과제 1. 별 피라미드 출력

아래와 같은 별 피라미드를 출력하는 코드를 작성한다.

*
**
***
****
*****

과제 2. 로또 번호 합산기

1~45 사이의 로또 번호 6개를 input() 으로 입력받아 합계와 평균을 계산하여 출력한다.


과제 3. 3의 배수의 합

1부터 100까지의 숫자 중 3의 배수의 합과 개수를 구하여 출력한다.

목차

  • 구문