for in range, for in list, while 반복문과 break/continue 흐름 제어
이번 강에서 배울 것
- for 반복문 — 횟수와 목록을 순서대로 처리하기
- range() 함수로 숫자 범위 생성하기
- while 반복문 — 조건이 참인 동안 반복하기
- break, continue, pass — 반복 흐름 제어
- 중첩 반복문과 실전 예제
1. for 반복문
for 반복문은 리스트, 문자열, range 등 순서 있는 데이터를 하나씩 꺼내며 반복합니다. "목록의 각 항목에 대해 이 작업을 해라"는 의미입니다.
# 기본 구조
for 변수 in 반복대상:
실행할 코드
# 리스트 반복
fruits = ["사과", "바나나", "포도", "딸기"]
for fruit in fruits:
print(fruit)
# → 사과 / 바나나 / 포도 / 딸기
# 문자열 반복 (한 글자씩)
for char in "Python":
print(char, end=" ")
# → P y t h o n
# range()와 함께 사용 (가장 많이 사용)
for i in range(5):
print(i, end=" ")
# → 0 1 2 3 4 (0부터 4까지, 5 미포함)
2. range() 함수
# range(끝) : 0 ~ 끝-1
# range(시작, 끝) : 시작 ~ 끝-1
# range(시작, 끝, 간격): 시작부터 끝-1까지 간격마다
for i in range(5):
print(i, end=" ") # → 0 1 2 3 4
for i in range(1, 6):
print(i, end=" ") # → 1 2 3 4 5
for i in range(0, 11, 2):
print(i, end=" ") # → 0 2 4 6 8 10
for i in range(10, 0, -1):
print(i, end=" ") # → 10 9 8 7 6 5 4 3 2 1 (역순)
# 활용: 1부터 100까지 합계
total = 0
for i in range(1, 101):
total += i
print(total) # → 5050
# 구구단 5단
for i in range(1, 10):
print(f"5 x {i} = {5 * i}")
3. enumerate() — 인덱스와 값 동시에
fruits = ["사과", "바나나", "포도"]
# enumerate: (인덱스, 값) 쌍으로 반환
for i, fruit in enumerate(fruits):
print(f"{i}번: {fruit}")
# → 0번: 사과
# → 1번: 바나나
# → 2번: 포도
# 시작 번호 지정 가능
for i, fruit in enumerate(fruits, start=1):
print(f"{i}번: {fruit}")
# → 1번: 사과
# → 2번: 바나나
# → 3번: 포도
4. while 반복문
while은 조건이 True인 동안 계속 반복합니다. 반복 횟수를 미리 모를 때 사용합니다.
# 기본 구조
while 조건식:
실행할 코드
# 반드시 조건을 변경하는 코드가 있어야 함!
# 카운트다운
count = 5
while count > 0:
print(count, end=" ")
count -= 1 # 없으면 무한 루프!
print("발사!")
# → 5 4 3 2 1 발사!
# 사용자 입력 받을 때까지 반복
while True:
password = input("비밀번호를 입력하세요: ")
if password == "1234":
print("로그인 성공!")
break # 루프 탈출
else:
print("틀렸습니다. 다시 시도하세요.")
# while vs for 선택 기준
# for: 반복 횟수가 정해진 경우, 목록을 순회하는 경우
# while: 특정 조건이 만족될 때까지 반복하는 경우
5. break, continue, pass
# break: 반복문 즉시 탈출
for i in range(10):
if i == 5:
break
print(i, end=" ")
# → 0 1 2 3 4 (5에서 멈춤)
# continue: 현재 반복 건너뛰고 다음으로
for i in range(10):
if i % 2 == 0:
continue # 짝수면 건너뜀
print(i, end=" ")
# → 1 3 5 7 9 (홀수만 출력)
# pass: 아무것도 하지 않음 (빈 블록 자리 유지)
for i in range(5):
if i == 3:
pass # 나중에 코드 추가 예정
print(i, end=" ")
# → 0 1 2 3 4 (3도 그냥 통과)
# 실용 예시: 소수(Prime) 찾기 1~30
for n in range(2, 31):
is_prime = True
for d in range(2, n):
if n % d == 0:
is_prime = False
break
if is_prime:
print(n, end=" ")
# → 2 3 5 7 11 13 17 19 23 29
6. 중첩 반복문 — 구구단 전체 출력
# 중첩 for: 반복문 안에 또 다른 반복문
for dan in range(2, 10): # 외부 반복: 2단~9단
print(f"--- {dan}단 ---")
for num in range(1, 10): # 내부 반복: 1~9
print(f"{dan} x {num} = {dan * num}")
# 별 피라미드 출력
rows = 5
for i in range(1, rows + 1):
print("*" * i)
# →
# *
# **
# ***
# ****
# *****
# 리스트 컴프리헨션 맛보기 (7강에서 자세히)
squares = [x**2 for x in range(1, 6)]
print(squares) # → [1, 4, 9, 16, 25]
5강 핵심 요약
- for: 목록·range를 순서대로 처리 — 횟수가 정해진 반복
- range(시작, 끝, 간격): 끝 값은 포함되지 않음
- while: 조건이 True인 동안 반복 — 반드시 탈출 조건 작성
- break: 즉시 탈출 / continue: 이번 회차 건너뜀 / pass: 자리 유지
- while True + break 패턴 = 사용자 입력 검증에 자주 사용
- 다음 강: 함수 — def로 코드를 묶어 재사용하는 방법
관련 검색어 · 파이썬반복문, for문파이썬, while문파이썬, range함수, break continue, 중첩반복문, enumerate파이썬