Python에서 문자열을 부울로 변환하는 것은 간단해 보이지만 예상치 못한 결과가 발생할 수 있습니다. 다음 예를 고려하십시오.
<code class="python">>>> bool("False") True</code>
이 코드가 False 대신 True를 반환하는 이유는 무엇입니까?
이 동작을 이해하는 열쇠는 Python의 암시적 캐스팅에 있습니다. 문자열을 불리언으로 변환할 때 Python은 문자열의 내용을 평가합니다. 문자열이 비어 있으면 False로 간주되고, 그렇지 않으면 True로 간주됩니다.
해결책:
예상 값에 따라 문자열을 부울로 올바르게 변환하려면 문자열을 예상 부울 표현과 비교하는 것이 좋습니다. 예를 들면 다음과 같습니다.
<code class="python">s == 'True'</code>
이 접근 방식은 문자열이 예상 부울 값과 일치하는지 명시적으로 확인합니다.
구문 분석의 유연성을 높이려면 허용되는 참 값 목록을 확인하면 됩니다.
<code class="python">s.lower() in ['true', '1', 't', 'y', 'yes', 'yeah', 'yup', 'certainly', 'uh-huh']</code>
주의:
다음 변환을 사용하면 예상치 못한 결과가 발생할 수 있습니다.
<code class="python">bool("foo") True bool("") False</code>
빈 문자열은 False로 평가되지만 다른 모든 문자열은 True로 평가합니다. 이 동작은 구문 분석 목적에 적합하지 않습니다.
위 내용은 Python에서 `bool(\'False\')`가 `True`를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!