논리 연산자(Logical Operator)에는 AND, OR, NOT이 있고, 각각의 진리표(Truth Table)은 다음과 같다.

AND

AND 연산(boolean AND)

input 2개가 모두 boolean값이 True인 경우에만 결과값으로 True를 반환하고, 나머지는 모두 False를 반환한다.

 

이러한 논리연산을 AND 연산(boolean AND)이라고도 부르고, · 으로 표시하거나 생략하며, 집합 기호 ∩(교집합, intersection)로 표시하기도 한다. 

a = True
b = False
c = 11  # 0이 아니므로 True

print(a and b)
print(bool(a and c))

출력

False
True

 

OR

OR 연산(boolean OR)

input 2개가 모두 모두 boolean값이 False인 경우에만 결과값으로 False를 반환하고, 나머지는 모두 True를 반환한다.

이러한 논리연산을 OR 연산(boolean OR)이라고도 부르고, + 로 표시하거나, 집합 기호 ∪(합집합, union)로 표시하기도 한다.

a = True
b = False
c = 11  # True
d = 0   # False

print(a or b)       
print(bool(a or c))
print(bool(b or d))

출력

True
True
False

NOT

A A'
False True
True False

input 1개가 False면 결과값으로 True를 반환하고, True이면 결과 값으로 False를 반환한다.

a = True
b = False
print(not(a))
print(not(b))

출력

False
True

 

 

XOR(배타적 논리합)

XOR(exclusive or, 배타적 논리합)

참 거짓이 서로 다를 때에만 True 로 계산하는 논리연산을 XOR(exclusive or, 배타적 논리합) 연산이라고도 부른다.

# 참 거짓이 서로 다를 때
c = bool(0)
d = bool(1)
print((c and (not d)) or ((not c) and d))  # True 출력

 

# 둘 다 참일 때
c = bool(1)
d = bool(1)
print((c and (not d)) or ((not c) and d)) # False 출력

 

 

 

 

 

 

 

출처:
codeup.kr/problem.php?id=6056
https://wikidocs.net/96000

+ Recent posts