-
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. 단락평가
: 논리 연산은 단락평가에 따라 반환하는 값으로 결정된다. 단락평가 규칙은 다음과 같다.
- 첫 번째 값만으로 결과가 확실할 때는 두 번째 값을 평가하지 않는다.
- 논리 연산자는 마지막으로 단락평가를 실시한 값을 그대로 반환한다.
>>> 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