Python 제어 흐름 문
프로그래밍에서 반복문의 실행을 유연하게 제어하는 것은 중요한 기술입니다. Python은 break, continue, pass라는 세 가지 핵심 문을 제공하여 반복문의 동작을 세밀하게 조절할 수 있게 합니다. 이 문서에서는 각 문장의 기능과 활용 방법을 살펴보겠습니다.
1. break 문
break 문은 반복문을 즉시 종료하고 반복문 다음에 있는 코드로 이동합니다. 특정 조건이 만족되면 더 이상 반복을 진행하지 않아야 할 때 유용하게 사용됩니다.
구문
for 항목 in 시퀀스:
if 조건:
break
# 처리 로직
# 반복문 종료 후 실행되는 코드
예제
학생 점수 목록에서 90점 이상인 첫 번째 점수를 찾는 상황을 살펴보겠습니다.
scores = [75, 82, 91, 65, 88, 95, 70]
for idx, score in enumerate(scores):
if score >= 90:
print(f"90점 이상 달성: 인덱스 {idx}, 점수 {score}")
break
else:
print("90점 이상인 점수가 없습니다.")
실행 결과:
90점 이상 달성: 인덱스 2, 점수 91
이 코드에서 for-else 구조는 반복문이 완전히 완료되었을 때 실행되며, break로 인해 반복문이 조기 종료되면 else 블록은 실행되지 않습니다.
2. continue 문
continue 문은 현재 반복의 나머지 코드를 건너뛰고 다음 반복으로 바로 이동합니다. 특정 조건을 만족하는 항목만 처리하거나 특정 항목을 제외하고 싶을 때 사용합니다.
구문
while 조건:
if 필터_조건:
continue
# 처리 로직
예제
1부터 15까지의 숫자 중에서 3의 배수만 제외하고 출력하는 프로그램을 작성해 보겠습니다.
for num in range(1, 16):
if num % 3 == 0:
continue
print(num, end=" ")
실행 결과:
1 2 4 5 7 8 10 11 13 14
3의 배수는 continue에 의해 건너뛰어지고, 나머지 숫자들이 출력됩니다.
3. pass 문
pass 문은 아무 것도 수행하지 않는 빈 문입니다. 문법적으로 문장이 필요하지만 아무런 동작도 하지 않아야 할 때 사용됩니다. 주로 함수나 클래스의 임시 구현, 조건문 블록의 자리 표시자로 활용됩니다.
예제
아직 구현하지 않을 함수를 정의해야 하는 상황을 가정해 보겠습니다.
def calculate_statistics(data):
"""통계 계산 함수 - 추후 구현 예정"""
pass
class DataProcessor:
"""데이터 처리기 클래스"""
pass
if user_role == "admin":
pass # 관리자 권한 처리 로직은 추후 구현
else:
print("일반 사용자입니다.")
pass 문이 없으면 위 코드는 들여쓰기 오류나 문법 오류를 발생시킬 것입니다.
4. 응용 예제: 숫자 추측 게임
세 가지 제어 문을 조합하여 간단한 숫자 추측 게임을 만들어 보겠습니다.
import random
secret = random.randint(1, 20)
max_attempts = 5
print("1부터 20 사이의 숫자를 맞춰보세요!")
for attempt in range(1, max_attempts + 1):
guess = int(input(f"{attempt}번째 시도: "))
if guess < 1 or guess > 20:
print("1에서 20 사이의 숫자만 입력해주세요.")
continue
if guess == secret:
print(f"정답입니다! {attempt}번 만에 맞추셨네요!")
break
elif guess < secret:
print("더 큰 숫자입니다.")
else:
print("더 작은 숫자입니다.")
else:
print(f"게임 종료. 정답은 {secret}이었습니다.")
이 예제에서 continue는 유효하지 않은 입력을 건너뛰고, break는 정답을 맞추면 반복문을 종료하며, for-else 구조는 모든 기회를 소진했을 때 실행됩니다.
요약
| 문장 | 기능 | 사용 시점 |
|---|---|---|
| break | 반복문 완전 종료 | 원하는 결과를 찾았을 때 |
| continue | 현재 반복 건너뛰기 | 특정 조건 무시할 때 |
| pass | 빈 문 실행 | 문법상 필요한 자리채움 |
이 세 가지 제어 문을 잘 활용하면 반복문의 흐름을 세밀하게 제어할 수 있으며, 더 효율적이고 가독성 높은 코드를 작성할 수 있습니다.