논리 연산자
는 피연산자의 논리(True, False)를 이용한 연산이다.
논리 연산자 종류
- and
- or
- not
A and B
: A와 B 모두 True인 경우만 결과값은 True이다.print('{} and {}: {}'.format(True, True, (True and True)))
print('{} and {}: {}'.format(False, True, (False and True)))
print('{} and {}: {}'.format(True, False, (True and False)))
print('{} and {}: {}'.format(False, False, (False and False)))
A or B
: A와 B 중 어느 하나만 True이면 결과 값은 True이다.print('{} or {}: {}'.format(True, True, (True or True)))
print('{} or {}: {}'.format(False, True, (False or True)))
print('{} or {}: {}'.format(True, False, (True or False)))
print('{} or {}: {}'.format(False, False, (False or False)))
not A
: A의 상태를 부정하는 결과를 나타낸다.print('not {}: {}'.format(True, (not True)))
print('not {}: {}'.format(False, (not False)))
Q1. '백신 접종 대상자는 20세 미만 또는 65세 이상자에 한합니다.'를 논리 연산자를 이용하여 코딩하기
[실행결과]
나이 입력: 20
age: 20, result: False
나이 입력: 65
age: 65, result: True
나이 입력: 45
age: 45, result: False
age = int(input('나이 입력: '))
vaccine = (age < 20) or (age >= 65)
print('age: {}, result: {}'.format(age, vaccine))
Q2. 국어, 영어, 수학 점수를 입력하고 평균이 70점 이상이면 True를 출력하는 코드를 작성하기 (단, 과목별 점수가 최소 60이상인 경우에 True를 출력한다.)
[실행결과]
국어 점수: 85
영어 점수: 90
수학 점수: 55
평균: 76.66666666666667, 결과: True
국어: 85, 결과: True
영어: 90, 결과: True
수학: 55, 결과: False
과락 결과: False
최종 결과: False
avgPass = 70
subjectPass = 60
kor = int(input('국어 점수: '))
eng = int(input('영어 점수: '))
math = int(input('수학 점수: '))
avg = (kor + eng + math) / 3
avgResult = avg >= avgPass
korResult = kor >= subjectPass
engResult = eng >= subjectPass
mathResult = math >= subjectPass
subjectPass = korResult and engResult and mathResult
print('평균: {}, 결과: {}'.format(avg, avgResult))
print('국어: {}, 결과: {}'.format(kor, korResult))
print('영어: {}, 결과: {}'.format(eng, engResult))
print('수학: {}, 결과: {}'.format(math, mathResult))
print('과락 결과: {}'.format(subjectPass))
print('최종 결과: {}'.format(avgResult and subjectPass))