Conditionals

Python의 조건문(Conditional Statements)은 프로그램의 흐름을 제어하는 데 사용된다.
조건문은 특정 조건이 참(True)인지 거짓(False)인지에 따라 코드 블록을 실행하거나 건너뛰도록 한다.

Python의 주요 조건문

  1. If 문
    if 문은 가장 기본적인 조건문으로, 조건이 참일 때만 코드 블록을 실행한다.
    구문:

    1
    2
    
    if 조건:
        # 실행할 코드
    

    예시:

    1
    2
    3
    
    number = 5
    if number > 0:
        print("양수입니다.")
    

    출력: 양수입니다.

  2. If-else 문
    if-else 문은 조건이 참일 때와 거짓일 때 각각 다른 코드 블록을 실행하도록 한다.
    구문:

    1
    2
    3
    4
    
    if 조건:
        # 조건이 참일 때 실행할 코드
    else:
        # 조건이 거짓일 때 실행할 코드
    

    예시:

    1
    2
    3
    4
    5
    
    number = -3
    if number > 0:
        print("양수입니다.")
    else:
        print("음수입니다.")
    

    출력: 음수입니다.

  3. If-elif-else 문
    if-elif-else 문은 여러 조건을 순차적으로 확인하며, 처음으로 참인 조건의 코드 블록만 실행된다.
    구문:

    1
    2
    3
    4
    5
    6
    
    if 조건1:
        # 조건1이 참일 때 실행할 코드
    elif 조건2:
        # 조건2가 참일 때 실행할 코드
    else:
        # 모든 조건이 거짓일 때 실행할 코드
    

    예시:

    1
    2
    3
    4
    5
    6
    7
    
    score = 85
    if score >= 90:
        print("A 학점")
    elif score >= 80:
        print("B 학점")
    else:
        print("C 학점")
    

    출력: B 학점

  4. 중첩 if 문
    if 문 안에 또 다른 if 문을 작성하여 복잡한 논리를 구현할 수 있다.
    구문:

    1
    2
    3
    
    if 조건1:
        if 조건2:
            # 두 조건 모두 참일 때 실행할 코드
    

    예시:

    1
    2
    3
    4
    5
    
    age = 20
    country = "US"
    if country == "US":
        if age >= 18:
            print("성인입니다.")
    

    출력: 성인입니다.

조건문의 특징

  1. 들여쓰기 중요성
    Python에서는 들여쓰기가 필수적이며, 이를 통해 코드 블록의 범위를 정의합니다.

  2. 조건부 표현식 (삼항 연산자)
    간단한 조건문은 한 줄로 표현할 수 있다.
    조건식은 ==, !=, ``, =와 같은 비교 연산자와 함께 사용된다.

    1
    2
    3
    4
    
    # 변수 d가 100보다 큰지 확인하고, 그에 따라 다른 값을 할당합니다.
    d = 120
    result = "크다" if d > 100 else "작거나 같다"
    print(f"d는 100보다 {result}.")
    
  3. 논리 연산자와 함께 사용하기
    and, or, not 등의 논리 연산자를 활용하여 복합 조건을 구성할 수 있다.

    1
    2
    3
    4
    5
    6
    
    # 변수 e가 0 이상 100 이하의 값인지 확인합니다.
    e = 75
    if e >= 0 and e <= 100:
        print("e는 0 이상 100 이하의 값입니다.")
    else:
        print("e는 범위를 벗어났습니다.")
    
  4. innot in 연산자를 사용한 조건문
    특정 값이 시퀀스(리스트, 튜플, 문자열 등)에 포함되어 있는지 확인할 때 사용한다.

    1
    2
    3
    4
    5
    6
    
    # 리스트에 특정 값이 있는지 확인합니다.
    fruits = ['사과', '바나나', '체리']
    if '바나나' in fruits:
        print("바나나가 리스트에 있습니다.")
    else:
        print("바나나가 리스트에 없습니다.")
    
  5. pass 키워드
    조건문 내에서 실행할 코드가 아직 정해지지 않았을 때는 pass를 사용하여 빈 블록을 유지할 수 있다.

    1
    2
    3
    
    # 조건이 참이지만 아직 실행할 코드를 결정하지 않았습니다.
    if True:
        pass  # 추후 구현 예정
    
  6. 빈 컨테이너나 None 검사

    1
    2
    3
    4
    
    # 권장되는 방식
    if my_list:  # 리스트가 비어있지 않은지 검사
    if my_string:  # 문자열이 비어있지 않은지 검사
    if value is None:  # None 검사
    

활용 예시

  1. 짝수 또는 홀수 확인

    1
    2
    3
    4
    5
    
    num = 4
    if num % 2 == 0:
        print("짝수입니다.")
    else:
        print("홀수입니다.")
    

    출력: 짝수입니다.

  2. 여러 조건 확인 (elif)

    1
    2
    3
    4
    5
    6
    7
    
    temperature = 30
    if temperature > 35:
        print("너무 덥습니다.")
    elif temperature > 25:
        print("따뜻합니다.")
    else:
        print("추운 날씨입니다.")
    

    출력: 따뜻합니다.

  3. 실전적인 활용 예제

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    def calculate_shipping(price, distance, is_premium_member):
        """
        배송비를 계산하는 함수
    
        Args:
            price: 상품 가격
            distance: 배송 거리(km)
            is_premium_member: 프리미엄 회원 여부
        """
        if is_premium_member:
            if price >= 50000:
                shipping_fee = 0  # 프리미엄 회원이고 5만원 이상 구매 시 무료
            else:
                shipping_fee = 2500  # 프리미엄 회원 기본 배송비
        else:
            if price >= 100000:
                shipping_fee = 0  # 일반 회원 10만원 이상 구매 시 무료
            elif distance > 50:
                shipping_fee = 5000  # 장거리 배송
            else:
                shipping_fee = 3000  # 일반 배송
    
        return shipping_fee
    

참고 및 출처