양파개발자 실바의 블로그

파이썬 연산자: 2 is 2 와 2 == 2의 차이점

파이썬 연산자: 2 is 22 == 2의 차이점

날짜: 2024-10-30

목록으로


2 is 22 == 2의 차이점은 비교의 목적연산 방식에 있습니다.

1. 2 is 2

  • is 연산자는 객체의 정체성(identity)을 비교합니다.
  • 즉, 두 객체가 메모리 상 동일한 객체인지를 확인합니다.
  • 파이썬에서 작은 정수(-5에서 256까지)는 같은 객체로 캐싱되므로, 2 is 2True를 반환합니다.
  • 그러나 숫자가 크거나 다른 타입 객체에서는 항상 동일한 객체가 아닐 수 있습니다.
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를 사용해 객체가 동일한지 확인합니다.