안녕하세요. BlockDMask 입니다.
오늘은 파이썬에서 and, or, not 논리연산자에 대해서 이야기 해보려 합니다.
<목차>
1. 논리연산자 and, or, not 설명 및 정리
2. 파이썬 논리연산자 예제
1. 파이썬 논리 연산자 and, or, not 설명
논리연산이라는 것이 '둘중 하나가 참이면 참이다', '둘다 참(true) 이면 이 조건문은 참(true)이다' 처럼.
조건문이 참(True)인지 거짓(False)인지 판단하는 것을 의미합니다.
그것들을 판단하기 위한 도구로써 파이썬에서는 and, or, not 을 제공해 줍니다.
논리 연산의 참(True) 인지 거짓(False)인지를 알려주기 위해,
파이썬에서 제공하는 and, or, not 의 연산자의 결과는 Bool 타입으로 반환해줍니다.
즉 and, or, not의 결과는 True 아니면 False 로 나오게 됩니다.
1-1) and 연산자
A and B
조건 A 와 조건 B가 모두 참이면 참(True)을 반환합니다.
즉, 조건 A 나 조건 B 중 둘 중 하나라도 거짓이면 거짓(False)를 반환합니다.
당연히 조건 A, B가 둘다 거짓이면 거짓(False)를 반환합니다.
age = 10
name = "block" 이라고 했을때
age >= 9 and name =="block"
이렇게 조건이 걸리면 age >= 9 가 True 이고 , name도 "block" 이 맞기 때문에
조건 A, B 가 모두 True 이므로 and 연산자의 결과도 True 가 나오게 됩니다.
이걸 코드로 보면 이런식으로 됩니다.
age = 10
name = "kim"
if age >= 9 and name == "block":
print("and 연산자 결과 : True")
else:
print("and 연산자 결과 : False")
여기서는 두 조건 age >= 9, name == "block" 이 둘다 true 이므로
print("and 연산자 결과 : True") 코드가 실행되게 됩니다.
1-2) or 연산자
A or B
or 연산은 조건 A, B 둘중 하나라도 True 이면 True가 나오게 됩니다.
즉. 둘다 False가 인 경우에만 False 이고, 조건중 하나라도 True 이면 True 입니다.
age = 10
name = "block"
이런 조건이라고 했을때
age = 10
name = "block"
if age >= 9 or name == "kim":
print("or 연산자 결과 : True")
else:
print("or 연산자 결과 : False")
왼쪽 조건인 age >= 9 는 참(True)인 반면,
오른쪽 조건인 name == "kim"은 거짓(False) 임에도 불구하고
print("or 연산자 결과 : True") 이쪽 코드를 타게 됩니다.
왼쪽 조건이 참이기 때문에 or 연산의 결과는 True 가 나오게 됩니다.
1-3) not 연산자
not A
not 조건은 조건을 반대로 해석하면 됩니다.
A가 거짓이라면 참(True)를 반환하고
A가 참이라면 거짓(False)를 반환합니다.
age = 10
if not age >= 9:
print("not 연산자 결과 : True")
else:
print("not 연산자 결과 : False")
코드를 보면 age >= 9 이 조건문은 분명히 True 인데, 앞에 not 을 붙여기 때문에 False가 반환이 되게 됩니다.
그렇기 때문에 코드 실행의 결과는 "not 연산자 결과 : False"가 나오게 됩니다.
1-4) and, or, not 연산자 한눈에 정리
and 연산
True and True => True
True and False => False
False and True => False
False and False => False
or 연산
True or True => True
True or False => True
False or True => True
False or False => False
not 연산
not True => False
not False => True
2. 파이썬 and, or, not 예제
2-1) and 연산자 예제
A = 10
B = 99
# True and True
print("1. True and True")
if A == 10 and B == 99:
print("A == 10 and B == 99 : True")
else:
print("A == 10 and B == 99 : False")
# True and False
print("\n2. True and False")
if A == 10 and B != 99:
print("A == 10 and B != 99 : True")
else:
print("A == 10 and B != 99 : False")
# False and True
print("\n3. False and True")
if A != 10 and B == 99:
print("A != 10 and B == 99 : True")
else:
print("A != 10 and B == 99 : False")
# False and False
print("\n4. False and False")
if A != 10 and B != 99:
print("A != 10 and B != 99 : True")
else:
print("A != 10 and B != 99 : False")
결과를 보면 True and True 인 경우만 True 가 나오는 것을 알 수 있습니다.
2-2) or 연산자 예제
A = 10
B = 99
# True or True
print("1. True or True")
if A == 10 or B == 99:
print("A == 10 or B == 99 : True")
else:
print("A == 10 or B == 99 : False")
# True or False
print("\n2. True or False")
if A == 10 or B != 99:
print("A == 10 or B != 99 : True")
else:
print("A == 10 or B != 99 : False")
# False or True
print("\n3. False or True")
if A != 10 or B == 99:
print("A != 10 or B == 99 : True")
else:
print("A != 10 or B == 99 : False")
# False or False
print("\n4. False or False")
if A != 10 or B != 99:
print("A != 10 or B != 99 : True")
else:
print("A != 10 or B != 99 : False")
or 연산을 보면 False or False 인 경우만 False를 반환하는 것을 볼 수 있습니다.
True 가 한개 이상 들어가기만 하면 or 연산자의 결과는 무조건 True 입니다.
2-3) not 연산자 예제
name = "BlockDMask"
# not True
print("1. not True")
if not name == "BlockDMask":
print("not name == 'BlockDMask' : True")
else:
print("not name == 'BlockDMask' : False")
# not False
print("\n2. not False")
if not name == "ABCDEF":
print("not name == 'ABCDEF' : True")
else:
print("not name == 'ABCDEF' : False")
not 은 조건 결과의 반대이기 때문에 조금 헷갈릴 수 있는데 천천히 보시면 이해가 갈 것 입니다.
이상으로 파이썬 논리연산자 and, or, not 에 대해서 알아보았습니다.
감사합니다.
'<개인공부> > [Python]' 카테고리의 다른 글
[python] 파이썬 공백 제거 (replace, strip) 2가지 방법 (0) | 2021.10.05 |
---|---|
[python] 파이썬 딕셔너리 정렬 (0) | 2021.09.15 |
[python] 파이썬 전역변수, 지역변수 정리 (0) | 2021.09.13 |
[python] 파이썬 sort 리스트 정렬 (오름차순, 내림차순) (1) | 2021.09.11 |
[python] 파이썬 평균 구하기 4가지 방법 (0) | 2021.07.26 |
[python] 파이썬 리스트 합치기 (+, extend, sum) (0) | 2021.07.23 |
[python] 파이썬 replace 설명 및 예제 (0) | 2021.07.19 |
[python] 파이썬 isdigit 숫자 판별 (0) | 2021.07.16 |