왜 \'11\'의 \'1\' == True가 Python에서 False로 평가됩니까?

Patricia Arquette
풀어 주다: 2024-10-30 11:38:00
원래의
707명이 탐색했습니다.

Why Does '1' in '11' == True Evaluate to False in Python?

Python: 'in' 및 비교 연산자와의 연산자 우선순위 혼동

Python에서 시퀀스 멤버십과 동등성을 비교하면 예기치 않은 결과가 발생할 수 있습니다. 'in' 연산자와 비교 연산자의 우선순위가 동일합니다. 괄호가 없는 표현식에서 이러한 연산자는 왼쪽에서 오른쪽으로 평가됩니다.

예:

'1' in '11' == True  # Evaluates to False
로그인 후 복사

이 표현식은 다음과 같이 해석됩니다.

('1' in '11') and ('11' == True)
로그인 후 복사

'11'은 True가 아니므로 전체 표현식은 False로 평가됩니다. 의도한 결과(True)를 얻으려면 괄호가 필요합니다.

'1' in '11' == True  # Evaluates to True
로그인 후 복사

그러나 반대 피연산자 주위에 괄호가 있으면:

'1' in ('11' == True)  # TypeError
로그인 후 복사

'11'이므로 TypeError가 발생합니다. True와 같습니다. 이는 부울 값이므로 반복할 수 없습니다. 이 오류를 방지하려면 'in' 연산자가 반복 가능한 객체와 함께 사용되는지 확인하세요.

예상대로 작동하는 코드를 작성하려면 Python의 연산자 우선 순위와 연결을 이해하는 것이 중요합니다. 우선순위가 동일한 연산자는 왼쪽에서 오른쪽으로 평가되며 연결을 사용하면 한 줄에서 여러 평가를 수행할 수 있습니다. 연산자 우선순위와 연결을 신중하게 고려하면 예상치 못한 결과를 방지하고 더욱 효율적인 코드를 작성할 수 있습니다.

위 내용은 왜 \'11\'의 \'1\' == True가 Python에서 False로 평가됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿