파이썬 연산자: 2 is 2 와 2 == 2의 차이점
파이썬 연산자: 2 is 2 와 2 == 2의 차이점
날짜: 2024-10-30
2 is 2와 2 == 2의 차이점은 비교의 목적과 연산 방식에 있습니다.
1. 2 is 2
is연산자는 객체의 정체성(identity)을 비교합니다.- 즉, 두 객체가 메모리 상 동일한 객체인지를 확인합니다.
- 파이썬에서 작은 정수(-5에서 256까지)는 같은 객체로 캐싱되므로,
2 is 2는True를 반환합니다. - 그러나 숫자가 크거나 다른 타입 객체에서는 항상 동일한 객체가 아닐 수 있습니다.
a = 2
b = 2
print(a is b) # True, 작은 정수이므로 동일 객체로 취급
2. 2 == 2
==연산자는 값의 동등성(equality)을 비교합니다.- 두 객체의 값이 같은지 여부를 확인하며, 객체가 동일할 필요는 없습니다.
- 따라서
2 == 2는 항상True를 반환합니다.
a = 2
b = 2.0
print(a == b) # True, 값이 같으므로 True 반환 (객체 타입은 다름)
print(a is b) # False, 정수와 부동소수점은 다른 객체
정리
is는 객체의 정체성을 비교하며, 동일한 객체인지 확인합니다.==는 값의 동등성을 비교하며, 두 값이 같은지를 확인합니다.
보통 값 자체를 비교할 때는 ==를 사용하며, 특정 상황에서만 is를 사용해 객체가 동일한지 확인합니다.