비교연산
1. 비교연산자
비교 연산자는 두 값을 비교하여 그 결과가 참(True)인지 거짓(False)인지를 판단하는 연산자입니다. 이 연산자들은 주로 조건문이나 반복문에서 조건을 검사할 때 사용됩니다.
1.1 ==
(같음)
두 값이 같으면 True를 반환합니다.
1.2 !=
(같지 않음)
- 두 값이 다르면 True를 반환합니다.
1.3 <
(작음)
- 왼쪽 값이 오른쪽 값보다 작으면 True를 반환합니다.
1.4 <=
(작거나 같음)
- 왼쪽 값이 오른쪽 값보다 작거나 같으면 True를 반환합니다.
1.5 >
(큼)
- 왼쪽 값이 오른쪽 값보다 크면 True를 반환합니다.
1.6 >=
(크거나 같음)
- 왼쪽 값이 오른쪽 값보다 크거나 같으면 True를 반환합니다.
2. 다양한 활용
숫자뿐만 아니라 문자열, 리스트, 튜플 등도 비교할 수 있습니다. 문자열의 경우에는 맨 앞자리에 유니코드 순서대로 비교합니다.
위처럼 알파벳은 구분하기가 쉽지만 한글은 쉽지 않습니다. 유니코드표에서 하
는 D558번째에 있으며 후
는 D6C4번째에 있습니다.
아래처럼 연속적인 비교도 가능합니다.
복잡한 조건: 논리 연산자(and, or, not)와 함께 사용하여 복잡한 조건을 생성할 수 있습니다.
3. 나아가기
아래처럼 리스트의 비교는 맨 앞자리를 비교합니다.
아래처럼 같은 시퀀스형 자료형이라도 타입이 다르면 비교가 가능하지 않습니다.
맨 앞자리가 같으면 그 다음 자리로 넘어가며 비교를 해나갑니다.
아래처럼 자릿수가 많을 경우 자릿수가 많은 값이 더 많은 값으로 취급됩니다.
이러한 비교연산, 산술연산은 모두 class에서 구현이 되어 있습니다.
class int(int):
def __eq__(self, other):
return True
# 10 < 11
int('10') == int('11')
class int(int):
def __eq__(self, other):
return True
# 10 < 11
int('10') == int('11')
class int(int):
def __add__(self, other):
return self * other
# 10 + 11
int(10) + int(11)
class int(int):
def __add__(self, other):
return self * other
# 10 + 11
int(10) + int(11)
4. 부동소숫점의 비교
이 부동소수점 수를 직접 비교하려고 하면 문제가 생길 수 있습니다. 그래서 파이썬에서는 math.isclose()
라는 특별한 함수를 제공하여 이런 문제를 해결할 수 있게 도와줍니다. 이 함수는 두 수가 충분히 가까운지를 확인해줍니다.