Python 루프 마스터하기: for, while, break, continue, enumerate 완전 정복
Python 루프 마스터하기: for, while, break, continue, enumerate 완전 정복
루프는 반복 프로그래밍의 중추입니다. 조건 충족까지 코드 블록 반복 실행 가능. Python은 두 주요 루프 구조 제공: for(이터레이터)과 while(조건 기반).
루프란?
루프는 문장 집합을 반복 실행. Python에서 루프는 컬렉션 처리, 수열 생성, 정지 기준 도달까지 작업 실행에 사용.
for 루프 (이터레이터)
for 루프는 이터러블(리스트, 튜플, 문자열, range)의 항목 순회. 이터러블 소진 시 자동 정지해 수동 인덱스 추적보다 안전.
x = 0
for x in range(2, 7):
print(x)
출력:
2
3
4
5
6
while 루프 (조건 기반)
while 루프는 불리언 표현식이 True인 동안 반복. 반복 횟수 미리 모를 때 이상적.
x = 0
while x < 4:
print(x)
x += 1
출력:
0
1
2
3
비수치 컬렉션 순회
for 루프는 문자열 등 컬렉션과 원활 작동:
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
for m in months:
print(m)
출력:
Jan
Feb
Mar
Apr
May
Jun
루프 탈출 (break)
break 문은 루프 즉시 종료. 조건 충족 시 조기 종료에 유용.
for x in range(10, 20):
if x == 15:
break
print(x)
출력:
10
11
12
13
14
반복 건너뛰기 (continue)
continue 문은 현재 반복 나머지 건너뛰고 다음 사이클 진행.
for x in range(10, 20):
if x % 5 == 0:
continue
print(x)
출력:
11
12
13
14
16
17
18
19
enumerate()로 인덱스付き 루프
내장 enumerate() 함수는 이터러블에 카운터 추가, 인덱스-값 쌍 반환.
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
for i, m in enumerate(months):
print(i, m)
출력:
0 Jan
1 Feb
2 Mar
3 Apr
4 May
5 Jun
문장 여러 번 반복
숫자 문자열이나 range로 for 루프 돌려 메시지 반복:
for i in '123':
print('guru99', i)
출력:
guru99 1
guru99 2
guru99 3
종합 예제 표
| 루프 유형 | 코드 |
| While 루프 | x = 0
while x < 4:
print(x)
x += 1 |
| For 루프 (숫자) | for x in range(2, 7):
print(x) |
| For 루프 (문자열) | months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
for m in months:
print(m) |
| For 루프 내 break | for x in range(10, 20):
if x == 15:
break
print(x) |
| For 루프 내 continue | for x in range(10, 20):
if x % 5 == 0:
continue
print(x) |
| For 루프 내 enumerate | months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
for i, m in enumerate(months):
print(i, m) |
Python 2 호환성
위 예제는 Python 3 문법. Python 2에선 print()를 print 문으로, range 동작 조정 필요.
# While 루프
x = 0
while x < 4:
print x
x += 1
# For 루프
for x in range(2, 7):
print x
# For 루프 문자열 순회
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
for m in months:
print m
# Break 예제
for x in range(10, 20):
if x == 15:
break
print x
# Continue 예제
for x in range(10, 20):
if x % 5 == 0:
continue
print x
# Enumerate 예제
for i, m in enumerate(months):
print i, m
출력:
0
1
2
3
2
3
4
5
6
Jan
Feb
Mar
Apr
May
Jun
10
11
12
13
14
11
12
13
14
16
17
18
19
0 Jan
1 Feb
2 Mar
3 Apr
4 May
5 Jun
더 깊은 참조는 공식 Python 제어 흐름 튜토리얼 참조.