프로그램의 의사결정 논리 구현
소프트웨어 개발에서 코드는 단순히 순차적으로 실행되지 않습니다. 특정 상황이나 데이터 값에 따라 실행 경로가 달라져야 하는 경우가 빈번합니다. 파이썬에서는 이를 처리하기 위해 조건문 (Conditional Statement)을 제공하며, 이는 프로그램의 흐름을 제어하는 가장 기초적이면서도 필수적인 도구입니다.
단일 경로 실행: if 문
가장 기본적인 형태인 if 문은 주어진 명제가 참 (True) 일 때만 내부 코드를 실행합니다. 파이썬은 들여쓰기 (Indentation) 를 통해 코드 블록을 구분하므로 중괄호 {} 는 사용하지 않습니다.
current_temperature = 35.0
threshold_limit = 30.0
if current_temperature > threshold_limit:
alert_message = "고온 주의보가 발령되었습니다."
print(alert_message)
위의 예시에서는 현재 기온이 기준치보다 높을 경우에만 경고 메시지를 출력합니다. 조건이 충족되지 않으면 해당 블록은 무시되고 스킵됩니다.
이진 선택 분기: if-else 구조
조건이 참일 때와 거짓일 때, 두 가지 서로 다른 동작 중 하나를 반드시 수행해야 한다면 else 절을 추가하여 이진 분기를 만듭니다.
user_login_status = False
max_retry_count = 3
attempt_count = 5
if attempt_count < max_retry_count:
action_result = "로그인 시도 가능"
else:
action_result = "최대 시도 횟수 초과로 잠금됨"
print(action_result)
이 구조는 시나리오의 결과가 오직 둘로 나뉘는 경우에 효율적입니다. 변수 `attempt_count` 가 허용된 횟수를 넘었는지 판단하여 시스템 접근 권한을 결정합니다.
다중 조건 평가: if-elif-else 체인
여러 개의 가능한 상태 중 하나를 정확히 골라야 할 때는 elif(else if) 키워드를 사용하여 조건들을 연쇄적으로 검사합니다. 위에서 아래로 검사가 진행되지만, 첫 번째로 만족한 조건에서만 실행되며 이후 조건들은 무시됩니다.
package_weight_kg = 2.5
base_fee = 3000
additional_rate = 500
shipping_cost = 0
if package_weight_kg <= 1.0:
shipping_cost = base_fee
elif package_weight_kg <= 5.0:
shipping_cost = base_fee + (package_weight_kg - 1) * additional_rate
else:
shipping_cost = base_fee + 2000 # 대량 물류 할인 제외 기본값
print(f"총 배송비: {shipping_cost} 원")
배송비의 계산처럼 범위에 따라 다른 로직이 적용되는 복잡한 비즈니스 규칙을 표현할 때 이 패턴을 주로 사용합니다.
간결한 표현식: 조건 식 (Ternary Operator)
긴 if-else 블록 없이 한 줄로 변수를 할당할 수 있는 문법도 지원합니다. 이는 단순한 값 판별 시 코드의 가독성을 높이는 데 유용합니다.
api_response_code = 404
http_status_text = "Normal Response" if api_response_code == 200 else "Error Occurred"
print(http_status_text)
이 방식은 '조건'이 참이면 앞쪽 값을, 거짓이면 뒤쪽 값을 결과 변수에 즉시 할당합니다. 다만, 너무 복잡한 로직이 들어갈 경우 오히려 유지보수가 어려워지므로 단순한 할당 용도로 제한하여 사용하는 것이 권장됩니다.