문자열 비교의 불일치 탐구: '==' 대 'is'
'==를 사용하여 문자열을 비교하는 행위 ' 또는 '이다'는 때때로 대조되는 결과를 낳을 수 있습니다. 이는 왜 이러한 차이가 존재하는지에 대한 의문을 제기합니다.
두 문자열 변수가 동일한 값을 가질 수 있지만 's1 == s2'는 지속적으로 True를 반환하는 반면, 's1 is s2'는 때때로 False를 반환합니다.
Python으로 해석하면 유사한 비교가 성공합니다.
>>> s1 = 'text' >>> s2 = 'text' >>> s1 is s2 True
이 현상을 이해하려면 신원 테스트를 구별하는 것이 중요합니다. ('is') 및 동등성 테스트('==').
제공된 예에서 발생하는 상황은 다음과 같이 인터프리터에서 복제됩니다.
>>> a = 'pub' >>> b = ''.join(['p', 'u', 'b']) >>> a == b True >>> a is b False
차이는 ' is'는 객체의 ID(즉, 메모리 주소)를 비교하는 반면, '=='는 해당 값을 비교합니다. 위 시나리오에서 'a'와 'b'는 동일한 값을 가지지만 메모리에 별도로 존재합니다.
따라서 'a is b'는 별개의 개체이므로 False로 평가되는 것이 논리적입니다. 내용이 일치합니다. 본질적으로 'a is b'는 'id(a) == id(b)'와 유사합니다.
위 내용은 Python 문자열 비교: `==`는 `is`와 언제 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!