반복문 (Loops)
반복문 (Loops)
반복문은 같은 코드를 여러 번 실행해야 할 때 사용하는 제어 구조입니다. 파이썬에서는 for문과 while문 두 가지 형태의 반복문을 제공합니다.
for 루프
for 문은 시퀀스(리스트, 튜플, 문자열 등)의 각 항목을 순회하거나, 지정된 횟수만큼 반복할 때 사용합니다.
기본 구조
# for 문 기본 구조
for 변수 in 시퀀스:
# 반복 실행할 코드
실행문
예시 1: 리스트 순회
fruits = ["사과", "바나나", "체리"]
for fruit in fruits:
print(fruit)
실행 결과
사과
바나나
체리
예시 2: 문자열 순회
message = "Python"
for char in message:
print(char)
실행 결과
P
y
t
h
o
n
예시 3.1: range() 함수를 활용한 반복
range() 함수는 특정 범위의 숫자 시퀀스를 생성합니다.
# range(stop) - 0부터 stop-1까지의 숫자 시퀀스
for i in range(5):
print(i)
실행 결과
0
1
2
3
4
예시 3.2: range() 함수를 활용한 반복
# range(start, stop) - start부터 stop-1까지의 숫자 시퀀스
for i in range(2, 6):
print(i)
실행 결과
2
3
4
5
예시 3.3: range() 함수를 활용한 반복
# range(start, stop, step) - start부터 stop-1까지 step 간격의 숫자 시퀀스
for i in range(1, 10, 2):
print(i)
실행 결과
1
3
5
7
9
예시 4: 인덱스와 함께 순회하기 (enumerate)
enumerate() 함수를 사용하면 시퀀스의 항목과 함께 인덱스를 얻을 수 있습니다.
fruits = ["사과", "바나나", "체리"]
for index, fruit in enumerate(fruits):
print(f"{index}번째 과일: {fruit}")
실행 결과:
0번째 과일: 사과
1번째 과일: 바나나
2번째 과일: 체리
while 루프
while 문은 주어진 조건이 참(True)인 동안 계속해서 코드 블록을 실행합니다. 조건이 거짓(False)가 되면 반복이 종료됩니다.
기본 구조
# while 문 기본 구조
while 조건:
# 조건이 참인 동안 반복 실행할 코드
실행문
예시 1: 기본 while 루프
count = 1
while count <= 5:
print(count)
count += 1 # 증가하지 않으면 무한 루프에 빠짐
실행 결과:
1
2
3
4
5
예시 2: 사용자 입력에 따른 반복
answer = ""
while answer.lower() != "quit":
answer = input("계속하려면 아무 키나 입력하세요. 종료하려면 'quit'를 입력하세요: ")
print(f"입력한 값: {answer}")
print("프로그램을 종료합니다.")
이 예제는 사용자가 'quit'를 입력할 때까지 계속해서 입력을 요청합니다.
예시 3: 무한 루프와 break 문
break 문은 반복문을 즉시 종료하고 다음 코드로 넘어갑니다.
while True: # 무한 루프
answer = input("종료하려면 'quit'를 입력하세요: ")
if answer.lower() == "quit":
break # while 루프 종료
print(f"입력한 값: {answer}")
print("프로그램을 종료합니다.")
예시 4: continue 문
continue 문은 현재 반복을 건너뛰고 다음 반복으로 바로 넘어갑니다.
count = 0
while count < 10:
count += 1
if count % 2 == 0: # 짝수인 경우
continue # 아래 코드를 실행하지 않고 다음 반복으로
print(count) # 홀수만 출력됨
실행 결과
1
3
5
7
9
예시 5: else 절이 있는 while 문
파이썬에서는 while 루프가 break 없이 정상적으로 종료되었을 때 실행되는 else 절을 추가할 수 있습니다.
count = 1
while count <= 5:
print(count)
count += 1
else:
print("카운트가 완료되었습니다!")
실행 결과:
1
2
3
4
5
카운트가 완료되었습니다!
하지만 break로 루프가 종료되면 else 절은 실행되지 않습니다
count = 1
while count <= 5:
print(count)
if count == 3:
break
count += 1
else:
print("이 메시지는 출력되지 않습니다.")
실행 결과
1
2
3
for 문과 while 문의 비교
| 특징 | for 문 | while 문 |
| 용도 | 시퀀스 순회, 정해진 횟수만큼 반복 | 조건이 참인 동안 반복 |
| 종료 조건 | 모든 항목을 순회한 후 | 조건이 거짓이 될 때 |
| 적합한 상황 | 반복 횟수를 미리 알고 있을 때 | 반복 횟수를 미리 알 수 없을 때 |
| 무한 루프 | 일반적으로 발생하지 않음 | 조건 관리에 주의해야 함 |