728x90
Python뿐만 아니라 프로그래밍 언어에서 비교 연산자, 논리 연산자는 알고리즘을 짜기 위한 기초이다.
그런데 기초라고 생각하다가 문득 Python의 ==, !=와 is, is not의 차이가 무엇인지 모른다는 생각을 했다.
우선 둘의 결과 bool값을 비교해보면 다르다.
print(12 == 12.0) # result: True
print(12 is 12.0) # result: False
12랑 12.0은 유효 숫자가 다르니까 다른 값 같기도 하고, 그냥 같은 값 같기도 하다.
부정의 비교 연산자와 논리 연산자로 표현하면 다음과 같다.
print(12 != 12.0) # result: False
print(12 is not 12.0) # result: True
이유를 말하자면,
- 비교 연산자 (==, !=, <, >, <=, >= 등)는 주어진 값 자체를 비교한다.
그래서 12 == 12.0은 같은 값을 나타내므로 True를 반환한다.
- 논리 연산자 (is, is not 등)은 객체인 object를 비교하는 것이기 때문에, 위와 같이 12, 12.0의 값은 다르다고 판단한다.
728x90
'Python' 카테고리의 다른 글
[코딩테스트/Python] 내가 필요해서 정리하는 파이썬 내장함수, 연산기호, 리스트 선언 (0) | 2022.11.20 |
---|---|
[Python] copy(), deepcopy()의 차이 / 파이썬으로 list, array값 복사하기 (0) | 2021.09.16 |
[Python] map() 함수 / 여러 input 값의 자료형을 한 번에 바꾸는 방법 (0) | 2021.08.31 |
[Python] 파이썬 객체지향 프로그래밍 / 클래스, 인스턴스, 메서드 정리 (0) | 2021.07.16 |