Heim  >  Artikel  >  Backend-Entwicklung  >  Warum gibt „bool(\"False\")` in Python „True“ zurück?

Warum gibt „bool(\"False\")` in Python „True“ zurück?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-28 09:38:29628Durchsuche

Why Does `bool(

Konvertieren eines Strings in einen Booleschen Wert in Python

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn