Posis

[Python] 비교연산자와 논리연산자 본문

Python

[Python] 비교연산자와 논리연산자

CooNiHong 2022. 11. 21. 02:10

비교 연산자

산술 연산자는 말 그대로 값을 계산하는 연산자입니다.

a = 123, b = 456

Operator Description Example
< 왼쪽값이 더 크면 True (a < b) → true
> 오른쪽값이 더 크면 True (a > b) → false
<= 왼쪽값이 더 크거나 같으면 True (a <= b) → true
>= 오른쪽값이 더 크거나 같으면 True (a >= b) → false
== 양쪽에 값이 같으면 True (a == b) → false
!= 양쪽에 값이 같으면 False (a != b) → true

숫자형 비교

a = 123
b = 456
print(a<b)
print(a>b)
print(a<=b)
print(a>=b)
print(a==b)
print(a!=b)

bool 비교

print(True<False)
print(True>False)

True와 False는 1과 0으로 생각하기 때문에 이러한 결과물이 출력됩니다.

문자형 비교

Python에서는 소문자가 대문자보다 큰 값으로 인지합니다. 또한 숫자로 된 문자열로 비교가 가능합니다.

print("ABC"<"abc")
print("ABC"=="ABC")
print("123"<"456")

논리 연산자

논리 연산자는 and, or, not이 있습니다. 다른 언어에서는 &&, ||를 사용하지만 Python에서는 and와 or를 사용합니다.

Operator Description Example
and 전자, 후자가 모두 참이면 True True and False = False
or 전자와 후자 둘중 하나라도 참이면 True True and False = True
not 논리 상태를 반전 not(True and True) = False
print(True and True)
print(True and False)
print(True or False)
print(False and False)
print(not(True and True))
print(not(True or False))

하지만 Python에서는 논리 연산자가 True와 False를 무조건 출력하지는 않습니다. 한번 예제를 통해서 알아보겠습니다.

print(True and 1)
print(True and 0)
print(1 or False)
print(0 or False)

1번에 경우 둘 다 참이어서 True를 반환할 거 같지만 1을 반환하였고 2번은 0을 반환했습니다.

or연산자는 하나만 참 이어도 True를 반환하기 때문에 바로 1을 반환해서 출력하게 됩니다. 마지막 4번은 0이 False이기 때문에 뒤로 넘어가서 False를 반환하게 됩니다. 

반환 값이 무조건 True와 False로 나오는 것이 아니기 때문에 잘 생각해서 코드를 짜야할 것 같습니다.

728x90