在 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中文網其他相關文章!