在 Python 中将字符串转换为布尔值看似简单,但可能会导致意外结果。考虑以下示例:
<code class="python">>>> bool("False") True</code>
为什么此代码返回 True 而不是 False?
理解此行为的关键在于 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中文网其他相关文章!