파이썬 2.5.2를 실행시켰을 때
>>> a = 256
>>> b = 256
>>> a is b
True # 당연히 True
>>> 257 is 257
True # 257을 직접 비교하면 True
>>> a = 257
>>> b = 257
>>> a is b
False # 왜 False가 뜨죠?
같이 실행됩니다.
인터프리터 버전에 따라서 다른가 실험해봤는데 파이썬 2.3.3에서는 99~100까지의 수만 이런 결과가 나옵니다.
파이썬은 작은 정수와 큰 수를 저장하는 방식이 다른가요? 왜 이렇게 다른 결과를 내는 건지 모르겠습니다.
그럼 안정적으로 두 숫자를 비교하려면 어떻게 해야 되나요?