首頁  >  文章  >  後端開發  >  為什麼 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>

為什麼此程式碼回傳 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn