>  기사  >  백엔드 개발  >  Python에서 `bool(\"False\")`가 `True`를 반환하는 이유는 무엇입니까?

Python에서 `bool(\"False\")`가 `True`를 반환하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-28 09:38:29628검색

Why Does `bool(

Python에서 문자열을 부울로 변환

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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