ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 5. 불과 비교, 논리 연산자 알아보기
    Python/Grammar 2022. 11. 30. 13:03

    #1. 불과 비교 연산자 사용하기

    1-1. 두 값이 서로 같은지 다른지 판단하기

    • ==: 두 값이 같으면 True, 두 값이 다르면 False 반환
    • !=: 두 값이 다르면 True, 두 값이 같으면 False 반환
    >>> 1 == 1.0 
    True

     

    1-2. 두 객체가 서로 같은지 다른지 판단하기

    • is: 두 객체가 같으면 True, 두 객체가 다르면 False 반환
    • is not: 두 객체가 다르면 True, 두 객체가 같으면 False 반환
    >>> 1 is 1.0 # 1은 정수 객체, 1.0은 실수 객체
    False

     

    1-3. 부등호 사용하기

    >>> 10 > 1     # 초과
    True
    >>> 10 < 1     # 미만
    False
    >>> 10 >= 10   # 이상
    True
    >>> 11 <= 10    # 이하
    False

     

     

    #2. 논리 연산자 사용하기

    2-1. and

    : and는 두 값이 모두 True여야 True를 반환한다. 하나라도 False이면 False를 반환한다.

    • a and b
    >>> True and True
    True
    >>> True and False
    False
    >>> False and True
    False
    >>> False and False
    False

     

    2-2. or

    : or는 두 값 중 하나만 True여도 True를 반환한다. 두 값 모두 False여야 False를 반환한다.

    • a or b
    >>> True or True
    True
    >>> True or False
    True
    >>> False or True
    True
    >>> False or False
    False

     

    2-3. not

    not은 논리값을 뒤집는다. 

    • not 논리값
    >>> not True
    False
    >>> not False
    True

     

    🖍  and, or, not이 함께 있으면 not, and, or 순으로 판단한다.

    >>> not True and False or not False # False(=not True) and False or True(=not False)
    				    # False(=False and False) or True
    True

     

    2-4. 논리 연산자와 비교 연산자 함께 사용하기

    >>> 1 == 10 and 10 != 5     # False and True
    False
    >>> 10 < 5 or 10 < 3        # False or False
    False
    >>> not 10 > 5              # not True
    False
    >>> not 1 is 1.0            # not False
    True

     

    2-5. 정수, 실수, 문자열을 불로 만들기

    : 정수 0, 실수 0.0 이외의 모든 숫자, 빈 문자열 "", ''을 제외한 모든 문자열은 True이다.

    • bool(값)
    >>> bool('False')
    True
    >>> bool(False)
    False
    >>> bool(0.0)
    False
    >>> bool('0')
    True
    >>> bool(1)
    True

     

    2-6. 단락평가

    : 논리 연산은 단락평가에 따라 반환하는 값으로 결정된다. 단락평가 규칙은 다음과 같다.

    1. 첫 번째 값만으로 결과가 확실할 때는 두 번째 값을 평가하지 않는다. 
    2. 논리 연산자는 마지막으로 단락평가를 실시한 값을 그대로 반환한다. 
    >>> False and True # False로 인해 and 연산 결과가 False임이 확실하므로 뒤에 있는 True는 확인하지 않음
    False
    >>> True or False  # True로 인해 or 연산 결과가 True임이 확실하므로 뒤에 있는 False는 확인하지 않음
    True
    
    >>> True and 'Python'
    'Python'        	  # 첫 번째 값으로 평가를 내릴 수 없어 두 번째 평가한 'Python' 자체가 반환됨
    >>> True and ''
    '' 			  # bool('')은 False이지만 논리연산은 단락평가를 실시한 값 자체를 반환하므로 False가 아닌 빈 문자열 그대로 나옴
    >>> 0 and 'Python'
    0                         # bool(0)은 False 이므로 뒤에 있는 'Python'은 확인하지 않고 0을 그대로 반환
    >>> False or ''           
    ''                        # 첫 번째 값 False로 결과를 결정할 수 없으므로 두번째 평가한 ''가 반환됨

     

     

    # 예제 1. 합격 여부 출력하기 (본문 8.4 연습문제)

    국어, 영어, 수학, 과학 점수가 있을 때 한 과목이라도 50점 미만이면 불합격이라고 정했습니다. 다음 소스 코드를 완성하여 합격이면 True, 불합격이면 False가 출력되게 만드세요.

    korean = 92
    english = 47
    mathematics = 86
    science = 81
     
    print(korean >= 50 and english >= 50 and mathematics >= 50 and science >= 50)

     

     

    # 예제 2. 합격 여부 출력하기 (본문 8.5 심사문제)

    표준 입력으로 국어, 영어, 수학, 과학 점수가 입력됩니다. 국어는 90점 이상, 영어는 80점 초과, 수학은 85점 초과, 과학은 80점 이상일 때 합격이라고 정했습니다(한 과목이라도 조건에 만족하지 않으면 불합격). 다음 소스 코드를 완성하여 합격이면 True, 불합격이면 False가 출력되게 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다).

    kor, eng, math, sci = map(int, input().split())
    print(kor >= 90 and eng > 80 and math > 85 and sci >= 80)

    'Python > Grammar' 카테고리의 다른 글

    7. 리스트와 튜플 사용하기  (0) 2022.12.01
    6. 문자열 사용하기  (0) 2022.11.30
    4. 출력 방법 알아보기  (0) 2022.11.29
    3. 변수와 입력 사용하기  (0) 2022.11.29
    1. 기본 문법  (0) 2022.11.28

    댓글

Designed by Tistory.