Comment convertir avec précision des chaînes en booléens en Python : éviter les résultats inattendus avec bool()

Mary-Kate Olsen
Libérer: 2024-10-27 20:26:30
original
491 Les gens l'ont consulté

How to Accurately Convert Strings to Booleans in Python: Avoiding Unexpected Results with bool()

Analyse de chaînes en booléens en Python : résoudre les incohérences

Alors que Python offre une méthode simple pour convertir des chaînes en booléens à l'aide de bool() fonction, cela conduit souvent à des résultats inattendus. Cet article présente des approches alternatives pour convertir avec précision des chaînes en booléens.

Un problème courant qui se pose avec bool() est que toutes les chaînes non vides sont évaluées à True. Pour résoudre ce problème, on peut comparer la chaîne à des valeurs spécifiques qui représentent « vrai » :

<code class="python">>>> s == 'True'</code>
Copier après la connexion

Cette approche garantit que seules les chaînes correspondant explicitement à « Vrai » sont évaluées à True.

Pour Dans des scénarios plus complexes, il est recommandé de vérifier une liste de valeurs acceptées :

<code class="python">>>> s.lower() in ['true', '1', 't', 'y', 'yes', 'yeah', 'yup', 'certainly', 'uh-huh']</code>
Copier après la connexion

Cependant, il est crucial de faire preuve de prudence lors de l'utilisation de bool() avec des chaînes non vides. Comme démontré ci-dessous, les chaînes vides sont évaluées à False, tandis que toutes les autres sont évaluées à True :

<code class="python">>>> bool("foo")
True
>>> bool("")
False</code>
Copier après la connexion

Ce comportement est problématique à des fins d'analyse, car les chaînes non vides qui devraient être évaluées à False renverront plutôt True. Par conséquent, les méthodes alternatives mentionnées ci-dessus doivent être privilégiées pour des conversions précises de chaîne en booléen.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal