비교 연산자 체인: [1,0] 중 1 == True가 False로 평가되는 이유
Python에서는 놀라운 결과가 나올 수 있습니다. "in" 멤버십 테스트 결과를 True로 비교할 때 발생합니다.
<code class="python">1 in [1,0] == True # Unexpectedly returns False</code>
이 동작을 이해하려면 Python이 비교 연산자 연결을 사용한다는 점을 인식하는 것이 중요합니다. 이는 표현식의 여러 비교 연산자가 순차적으로 평가됨을 의미합니다. 앞서 언급한 코드의 경우 표현식은 다음과 같이 해석됩니다.
<code class="python">(1 in [1,0]) == True</code>
더 자세히 분석하면:
[1,0] == True의 비밀
이 예상치 못한 결과의 이유는 다음과 같습니다. Python이 부울 값과 비교를 처리하는 방식. 목록을 부울 값과 비교할 때 Python은 먼저 목록을 부울 값으로 변환하려고 시도합니다. [1,0]의 경우 Python에서는 비어 있지 않은 목록이 True로 간주되므로 이 변환은 False를 반환합니다.
The Chain Unfolds
따라서 원래 표현식은 다음과 같이 단순화됩니다.
<code class="python">True == False</code>
분명히 False로 평가됩니다. 이는 1 in [1,0] == True가 False를 반환하는 이유를 설명합니다.
추가 의미
이 연산자 연결 동작은 다른 비교 연산자에도 적용됩니다. 예:
<code class="python">a < b < c</code>
다음으로 변환:
<code class="python">(a < b) and (b < c)</code>
이것은 b가 한 번만 평가되도록 보장합니다.
결론
그러한 표현식의 동작을 해석하려면 비교 연산자 연결의 개념을 이해하는 것이 중요합니다. 평가 순서가 왼쪽에서 오른쪽임을 인식함으로써 결과를 정확하게 예측하고 혼란을 피할 수 있습니다.
위 내용은 Python에서 `1 in [1,0] == True`가 False로 평가되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!