Python에서 부울이 아닌 값이 "and" 및 "or"와 상호 작용하는 방식
질문:
Python에서는 다음이 관찰됩니다. 논리 연산자 "and" 및 "or"는 부울이 아닌 값에 대해 작동할 때 비정상적인 동작을 나타냅니다. 예를 들어, "10 및 7-2"라는 표현식은 True 또는 False 대신 5를 반환합니다. Python 프로그래밍에서 이 동작과 그 의미를 설명하십시오.
답변:
Python의 논리 연산자 "and" 및 "or"에는 부울이 아닌 값을 처리하기 위한 고유한 규칙이 있습니다.
"그리고" 동작:
- 식의 값이 False이면 "False"가 반환됩니다.
- False 값이 없으면 식의 마지막 값이 반환됩니다.
"또는" 동작:
- 식의 값이 True이면 "True"가 반환됩니다.
- True 값이 없으면 식의 마지막 값이 반환됩니다.
예제 표현식 "10 및 7-2":
- 7-2는 5(부울이 아닌 값)로 평가됩니다.
- 식에 False 값이 없으므로 "and"는 마지막 값을 반환합니다. 값은 5입니다.
마찬가지로 "10 또는 7-2":
- 7-2는 5(부울이 아닌 값)로 평가됩니다.
- 식(10)에 True 값이 있으므로 "or" 10을 반환합니다.
합법성과 주의 사항:
이러한 동작은 합법적이며 일반적으로 사용됩니다. 그러나 제대로 이해하지 못하면 예상치 못한 결과가 발생할 수 있습니다. 주의해야 할 사항은 다음과 같습니다.
-
암시적 참/거짓 값: 빈 문자열, 빈 목록 및 None과 같은 일부 부울이 아닌 값은 암시적으로 False로 처리됩니다. , 0이 아닌 숫자는 암시적으로 True입니다.
-
피연산자 순서: "and"와 "or"의 경우 피연산자의 순서가 중요합니다. 위의 예에서 "10 및 7-2"는 5를 반환하지만 "7-2 및 10"은 8을 반환합니다(5의 암시적 False 값은 "and"를 단락시키기 때문).
-
유형 변환: "and" 및 "or"는 부울이 아닌 피연산자를 부울 값으로 변환하려고 시도합니다. 이는 "0 및 '0' == True"와 같은 경우 예상치 못한 결과가 발생할 수 있습니다(문자열 '0'은 암시적으로 False로 처리되므로).
위 내용은 Python의 'and' 및 'or' 연산자는 부울이 아닌 값을 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!