Python의 연산자 우선 순위 수수께끼: 'in'과 비교의 미스터리 풀기
Python의 'in' 연산자와 비교는 많은 사람들을 당황하게 만들었습니다. 그러나 표면 아래에는 연산자 우선 순위와 표현식 연결의 미묘한 상호 작용이 있습니다.
연산자 우선 순위는 표현식 내에서 연산이 평가되는 순서를 결정합니다. Python에서는 'in'과 비교 연산자(예: '==')의 우선순위가 동일합니다. 결과적으로 왼쪽에서 오른쪽으로 처리됩니다.
그러나 연결된 표현식이 포함되면 상황이 더욱 복잡해집니다. 'in' 작업의 결과를 다른 값과 비교하려고 할 때 일반적인 함정이 발생합니다. 다음 예를 고려하십시오.
'1' in '11' == True
놀랍게도 이 표현식은 False로 평가됩니다. 그 이유는 'in'과 '=='의 연결에 있습니다. 표현식은 다음과 같이 효과적으로 구문 분석됩니다.
('1' in '11') and ('11' == True)
'in' 연산자는 '1'인지 확인합니다. 은 '11'의 멤버이므로 True가 됩니다. 그러나 두 번째 비교 '11' == True에서는 False가 반환됩니다. 따라서 전체 표현식은 False로 평가됩니다.
원하는 True 값을 얻으려면 우선 순위를 명시적으로 변경해야 합니다. 이는 괄호를 사용하여 달성할 수 있습니다:
('1' in '11') == True
'in' 연산을 괄호로 묶으면 표현식이 해당 내에서 평가됩니다. 범위를 True와 비교하기 전에. 이러한 변경으로 인해 의도한 대로 실제 결과가 발생합니다.
복잡한 Python 표현식의 동작을 해독하려면 연산자 우선 순위와 연결을 이해하는 것이 중요합니다. 이를 통해 개발자는 작업 순서를 예측하고 예상치 못한 함정을 피할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3