편집 기록

편집 기록
  • 프로필 권태형님의 편집
    날짜2018.06.21

    정수를 is로 비교하는게 이상해요


    파이썬 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까지의 수만 이런 결과가 나옵니다.

    파이썬은 작은 정수와 큰 수를 저장하는 방식이 다른가요? 왜 이렇게 다른 결과를 내는 건지 모르겠습니다.

    그럼 안정적으로 두 숫자를 비교하려면 어떻게 해야 되나요?

  • 프로필 장도훈님의 편집
    날짜2017.11.06

    정수를 is로 비교하는게 이상해요


    파이썬 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까지의 수만 이런 결과가 나옵니다.

    파이썬은 작은 정수와 큰 수를 저장하는 방식이 다른가요? 왜 이렇게 다른 결과를 내는 건지 모르겠습니다.

    그럼 안정적으로 두 숫자를 비교하려면 어떻게 해야 되나요?