Est-ce que Python a quelque chose comme une variable de type chaîne vide où l'on peut faire :
if myString == string.empty:
Quoi qu'il en soit, quelle est la manière la plus élégante de vérifier les valeurs de chaînes vides ? Je trouve que coder en dur ""
à chaque fois pour vérifier une chaîne vide n'est pas aussi bon.
Les chaînes de caractères vides sont ["falsy"][1], ce qui signifie qu'elles sont considérées comme fausses dans un contexte booléen, donc vous pouvez simplement faire cela :
if not myString:
C'est la méthode préférée si vous savez que votre variable est une chaîne de caractères. Si votre variable peut être d'un autre type, vous devez utiliser myString == ""
. Voir la documentation sur le [Test des valeurs vraies][2] pour d'autres valeurs qui sont fausses dans les contextes booléens.
[1] : http://docs.python.org/2/library/stdtypes.html#truth-value-testing [2] : http://docs.python.org/library/stdtypes.html#truth-value-testing
Extrait de [PEP 8] (http://www.python.org/dev/peps/pep-0008/), dans la section ["Recommandations de programmation"] (https://www.python.org/dev/peps/pep-0008/#programming-recommendations) :
Pour les séquences (chaînes de caractères, listes, tuples), utilisez le fait que les séquences vides sont fausses.
Vous devriez donc utiliser :
if not some_string:
ou :
if some_string:
Juste pour clarifier, les séquences sont évaluées à False
ou True
dans un contexte booléen si elles sont vides ou non. Elles ne sont pas égales à False
ou True
.
La manière la plus élégante serait probablement de vérifier simplement si elle est vraie ou fausse, par exemple :
if not my_string:
Cependant, vous pouvez vouloir supprimer les espaces blancs car :
>>> bool("")
False
>>> bool(" ")
True
>>> bool(" ".strip())
False
Vous devriez probablement être un peu plus explicite dans ce cas, sauf si vous êtes sûr que cette chaîne a passé une sorte de validation et qu'elle peut être testée de cette façon.