ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 11. else를 사용하여 두 방향으로 분기하기
    Python/Grammar 2023. 3. 9. 23:23

    # 1. else 사용하기

    1-1. if와 else의 기본 형태와 실행 흐름 알아보기

    else의 코드는 if 조건식을 만족하지 않을 때 실행한다. 즉, if 조건식이 True이면 if 본문(if의 코드)이 실행되고 False이면 else 본문(else의 코드)이 실행된다. else 조건문은 단독으로 사용할 수 없으며, 조건식 뒤에 콜론을 붙이는 형식과 실행할 코드를 조건식 다음줄에 들여쓰기 후 작성하는 규칙은 if 조건문과 같다.

     

    ❗️ False로 취급하는 것들
    - None
    - False
    - 0인 숫자들 -> 0, 0.0, 0j
    - 비어있는 문자열 -> '', ""
    - 비어있는 리스트 -> []
    - 비어있는 튜플 -> ()
    - 비어있는 딕셔너리 -> {}
    - 비어있는 세트 -> set()
    - 클래스 인스턴스의 __bool__(), __len__() 메서드가 0 또는 False를 반환할 때

    False로 취급하는 것들을 제외한 모든 요소들은 True로 취급한다.

     

     

    1-2. 조건부 표현식(condition expression)으로 사용하기

    if - else 조건문의 일반적인 형태는 아래와 같다.

    a = 'True'
    if a: # 문자열은 True로 취급되므로 if의 코드가 실행된다. 
        b = a
    else:
        b = True
    
    >>> b
    'True'

     

    하지만 아래와 같이 "조건부 표현식"을 사용하면 변수 = 값 if 조건식 else 값 형식으로 축약할 수 있다.

    a = 'True'
    b = 'True' if a else True
    
    >>> b
    'True'

    cf. 조건부 표현식은 람다 표현식에서 자주 사용함

     

     

    # 2. 조건식을 여러 개 지정하기

    2-1.  중첩 if 조건문과 논리 연산자

    조건식을 여러 개 지정하는 방법에는 중첩 if 조건문을 사용하거나 if 조건문에 논리 연산자를 활용하는 방법이 있다.

    먼저 중첩 if 조건문을 사용한 예제는 아래와 같다.

    x = 10
    y = 30
    
    if x == 10:
        if y == 20:
            print('a')
    else:
        print('b')
    
    # 실행결과
    b

     

    이를 논리 연산자를 활용해 표현하면 아래와 같다.

    x = 10
    y = 30
    
    if x == 10 and y == 20: # x값이 10이고 y값이 20인 조건 모두를 만족하면 if 본문 실행
        print('a')
    else:
        print('b')
    
    # 실행결과
    b

     

    위 식에서 논리 연산자 or을 사용하면 x값이 10인 조건은 만족하므로 결과값 'a'가 출력된다.

    x = 10
    y = 30
    
    if x == 10 or y == 20: # x값이 10인 조건, y값이 20인 조건 둘 중 하나만 만족하면 if 본문 실행
        print('a')
    else:
        print('b')
        
    # 실행결과
    a

     

     

    예제 1. 합격 여부 판단하기 1 (본문 14.6 연습문제)

    A 기업의 입사 시험은 필기 시험 점수가 80점 이상이면서 코딩 시험을 통과해야 합격이라고 정했습니다(코딩 시험 통과 여부는 True, False로 구분). 다음 소스 코드를 완성하여 '합격', '불합격'이 출력되게 만드세요.

    written_test = 75
    coding_test = True
     
    if written_test >= 80 and coding_test:
        print('합격')
    else:
        print('불합격')

     

     

    예제 2. 합격 여부 판단하기 2 (본문 14.7 심사문제)

    표준 입력으로 국어, 영어, 수학, 과학 점수가 입력됩니다. 여기서 네 과목의 평균 점수가 80점 이상일 때 합격이라고 정했습니다. 평균 점수에 따라 '합격', '불합격'을 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 단, 점수는 0점부터 100점까지만 입력받을 수 있으며 범위를 벗어났다면 '잘못된 점수'를 출력하고 합격, 불합격 여부는 출력하지 않아야 합니다.

    kor, eng, math, sci = map(int, input().split())
    if not 0 <= kor <= 100 or not 0 <= eng <= 100 or not 0 <= math <= 100 or not 0 <= sci <= 100:
      print('잘못된 점수')
    else: 
      if (kor + eng + math + sci) / 4 >= 80:
        print('합격')
      else:
        print('불합격')

     

     

    댓글

Designed by Tistory.