파이썬 제어 흐름: 조건문의 기본 구조
프로그램의 실행 경로를 동적으로 변경하기 위해서는 조건에 따른 분기 처리가 필수적입니다. 파이썬에서는 특정 표현식의 참(True) 또는 거짓(False) 여부에 따라 코드 블록의 실행을 제어할 수 있도록 다양한 조건문을 제공합니다. 이 문서에서는 기본 분기 구조부터 다중 조건 및 중첩 구조까지의 기술적 구현 방식을 다룹니다.
1. 단일 조건 검사: if 문
가장 기초적인 분기 구조로, 지정된 조건식이 참일 때만 내부 코드 블록을 실행합니다. 파이썬은 블록을 구분하기 위해 중괄호 대신 들여쓰기(Indentation)를 사용하므로 정확한 공백 처리가 필요합니다.
system_temperature = 75
if system_temperature > 70:
print("경고: 쿨링 팬 속도를 증가시킵니다.")
2. 이중 분기: if-else 문
조건식의 결과에 따라 두 가지 상호 배타적인 실행 경로 중 하나를 선택해야 할 때 사용합니다. 조건이 거짓(False)으로 평가될 경우 else 블록의 로직이 수행됩니다.
account_balance = 45000
transaction_amount = 50000
if account_balance >= transaction_amount:
print("트랜잭션 승인: 결제가 완료되었습니다.")
else:
print("트랜잭션 거부: 잔액이 부족합니다.")
3. 다중 조건 처리: if-elif-else 문
세 개 이상의 상호 배타적인 조건을 순차적으로 평가해야 하는 경우에 적합합니다. elif(else if의 약어)는 앞선 조건들이 모두 거짓일 때 추가적인 조건 검사를 수행하며, 첫 번째로 참이 되는 블록만 실행한 후 전체 조건문에서 빠져나옵니다.
http_status_code = 404
if http_status_code == 200:
print("상태: 요청 성공 (OK)")
elif http_status_code == 401:
print("상태: 인증 필요 (Unauthorized)")
elif http_status_code == 404:
print("상태: 리소스를 찾을 수 없음 (Not Found)")
elif http_status_code == 500:
print("상태: 서버 내부 오류 (Internal Server Error)")
else:
print("상태: 정의되지 않은 응답 코드")
4. 중첩 조건문 (Nested Conditions)
복잡한 비즈니스 로직을 구현할 때 조건문 내부에 또 다른 조건문을 배치하여 계층적인 분기 구조를 만들 수 있습니다. 다만, 중첩 깊이가 지나치게 깊어지면 코드의 가독성과 유지보수성이 저하될 수 있으므로 주의가 필요합니다.
years_of_service = 5
performance_score = 88
if years_of_service >= 3:
if performance_score >= 90:
print("인사 평가 결과: 승진 대상자입니다.")
else:
print("인사 평가 결과: 근속 연수는 충족했으나 성과 점수가 부족합니다.")
else:
print("인사 평가 결과: 승진을 위한 최소 근속 연수를 채우지 못했습니다.")