>  기사  >  백엔드 개발  >  Python에서 (1 in [1, 0] == True)가 False로 평가되는 이유는 무엇입니까?

Python에서 (1 in [1, 0] == True)가 False로 평가되는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-03 18:02:03602검색

Why Does (1 in [1, 0] == True) Evaluate to False in Python?

Python 우선 순위 및 연결: (1 in [1,0] == True)에서 예기치 않은 결과가 나타나는 이유는 무엇입니까?

Python에서, (1 in [1,0] == True) 표현식은 False로 평가되는데, 이는 직관에 반하는 것처럼 보일 수 있습니다. 그 이유를 이해하려면 Python의 연산자 우선 순위와 연결에 대해 아는 것이 중요합니다.

연산자 우선 순위는 표현식의 다양한 연산자가 평가되는 순서를 결정합니다. 이 경우 in 연산자는 비교 연산자 ==보다 우선순위가 높습니다. 따라서 표현식은 (1 in [1,0]) == True로 구문 분석되며, 여기서 (1 in [1,0])이 먼저 평가됩니다.

인터프리터가 (1 in [1, 0]), 목록 [1,0]에 1이 있으므로 True를 반환합니다. 그러나 표현식은 여기서 끝나지 않습니다.

Python은 비교 연산자에 체인을 사용합니다. 연결을 사용하면 단일 표현식에서 여러 비교를 수행할 수 있습니다. 이 경우 (1 in [1,0]) == True 표현식은 다음과 같이 번역될 수 있습니다.

(1 in [1,0]) 및 ([1,0] == True)

([1,0]의 1)을 True로 평가한 후 통역사는 ([1,0] == True) 평가를 진행합니다. [1,0]은 목록이고 True는 부울 값이므로 이 비교는 False로 평가됩니다.

따라서 연결된 비교의 두 조건이 모두 충족되지 않기 때문에 전체 표현식은 False로 평가됩니다. 단순히 우선순위의 문제가 아니라 우선순위와 연쇄의 조합이 이런 결과를 낳게 됩니다.

위 내용은 Python에서 (1 in [1, 0] == True)가 False로 평가되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.