Das Konvertieren eines Strings in einen Booleschen Wert in Python scheint unkompliziert, kann aber zu unerwarteten Ergebnissen führen. Betrachten Sie das folgende Beispiel:
<code class="python">>>> bool("False") True</code>
Warum gibt dieser Code True statt False zurück?
Der Schlüssel zum Verständnis dieses Verhaltens liegt in der impliziten Umwandlung von Python. Beim Konvertieren einer Zeichenfolge in einen booleschen Wert wertet Python den Inhalt der Zeichenfolge aus. Wenn die Zeichenfolge leer ist, wird sie als Falsch betrachtet, andernfalls als Wahr.
Lösung:
Um eine Zeichenfolge basierend auf ihrem erwarteten Wert korrekt in einen Booleschen Wert umzuwandeln, muss sie Es wird empfohlen, die Zeichenfolge mit der erwarteten booleschen Darstellung zu vergleichen. Zum Beispiel:
<code class="python">s == 'True'</code>
Dieser Ansatz prüft explizit, ob die Zeichenfolge mit dem erwarteten booleschen Wert übereinstimmt.
Für mehr Flexibilität beim Parsen können Sie eine Prüfung anhand einer Liste akzeptierter wahrer Werte durchführen:
<code class="python">s.lower() in ['true', '1', 't', 'y', 'yes', 'yeah', 'yup', 'certainly', 'uh-huh']</code>
Achtung:
Die Verwendung der folgenden Konvertierung kann zu unerwarteten Ergebnissen führen:
<code class="python">bool("foo") True bool("") False</code>
Leere Zeichenfolgen werden als „Falsch“ ausgewertet, alle anderen Zeichenfolgen jedoch mit „True“ auswerten. Dieses Verhalten ist nicht für Analysezwecke geeignet.
Das obige ist der detaillierte Inhalt vonWarum gibt „bool(\'False\')` in Python „True' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!