Python 조건 제어: if-else 구문과 삼항 연산자 활용 가이드

소프트웨어 개발에서 제어 흐름을 관리하는 것은 매우 중요합니다. Python은 조건에 따라 분기하는 로직을 구현하기 위해 전통적인 if-else 블록뿐만 아니라, 코드의 간결함을 높여주는 조건부 표현식(삼항 연산자)을 지원합니다. 이 두 가지 접근 방식의 구조와 활용 사례를 살펴보겠습니다.

시나리오: 재고 상태 확인

이커머스 플랫폼에서 특정 상품의 재고 수량을 확인하고, 주문 가능 여부를 사용자에게 알려주는 로직을 구현한다고 가정해 봅시다.

접근 방식 1: 표준 if-else 블록 사용

가장 기본적이고 직관적인 방법은 표준 조건문을 사용하는 것입니다.

inventory_count = int(input("현재 재고 수량을 입력하세요: "))

# 표준 조건문을 통한 상태 할당
if inventory_count > 0:
    order_status = "주문 가능"
else:
    order_status = "품절"

print(f"상품 상태: {order_status}")

위 코드는 사용자가 입력한 재고 수량을 평가하여 0보다 클 경우 '주문 가능'을, 그렇지 않을 경우 '품절' 문자열을 변수에 할당합니다. 가독성이 좋고 복잡한 로직을 처리하기에 적합합니다.

접근 방식 2: 조건부 표현식(삼항 연산자) 사용

단순한 조건 분기라면 Python의 조건부 표현식을 사용하여 단일 행으로 압축할 수 있습니다.

stock_level = int(input("현재 재고 수량을 입력하세요: "))

# 조건부 표현식을 활용한 단일 행 할당
availability = "주문 가능" if stock_level > 0 else "품절"

print(f"상품 상태: {availability}")

이 구문은 여러 줄에 걸쳐 작성해야 하는 블록 구조를 제거하고, 할당과 조건 평가를 한 번에 수행하여 코드의 밀도를 높여줍니다.

조건부 표현식 문법 구조

Python의 삼항 연산자는 다음과 같은 구조를 가집니다.

[조건이 참일 때 반환할 값] if [평가할 조건식] else [조건이 거짓일 때 반환할 값]

여기서 조건식은 불리언(True/False) 결과를 도출하는 모든 표현식이 올 수 있습니다. 해석 순서는 가운데 있는 조건식을 먼저 평가한 후, 결과에 따라 앞쪽 값이나 뒤쪽 값이 반환됩니다.

중첩 조건부 표현식

조건부 표현식은 중첩하여 사용할 수도 있지만, 가독성을 해칠 수 있으므로 주의해야 합니다.

response_code = 200

# 중첩 사용 예시 (권장하지 않음)
message = "성공" if response_code == 200 else ("리디렉션" if response_code == 301 else "오류")

위와 같이 여러 조건을 한 줄에 엮으면 코드가 복잡해지므로, 다중 분기가 필요한 경우에는 일반적인 if-elif-else 블록을 사용하는 것이 유지보수 측면에서 더 유리합니다.

태그: python if-else 삼항 연산자 조건부 표현식 제어 흐름

7월 4일 00:57에 게시됨