Comment puis-je tester si la chaîne est vide en Python?
Par exemple,
"<space><space><space>"
est vide, ainsi
"<space><tab><space><newline><space>"
, de même
"<newline><newline><newline><tab><newline>"
, etc.
yourString.isspace()
"Renvoie true s'il n'y a que des caractères d'espacement dans la chaîne et s'il y a au moins un caractère, false sinon."
Combinez cela avec un cas spécial pour gérer la chaîne vide.
Alternativement, vous pouvez utiliser
strippedString = yourString.strip()
Et puis vérifiez si strippedString est vide.
>>> tests = ['foo', ' ', '\r\n\t', '', None]
>>> [bool(not s or s.isspace()) for s in tests]
[False, True, True, True, True]
>>>
Vous voulez utiliser la méthode isspace()
str. isspace ()
Renvoie true s'il n'y a que des caractères d'espacement dans la chaîne et s'il y a au moins un caractère, false sinon.
Cela est défini sur chaque objet string. Voici un exemple d'utilisation pour votre cas d'utilisation spécifique:
if aStr and (not aStr.isspace()):
print aStr
pour ceux qui s'attendent à un comportement comme Apache StringUtils.isBlank ou Guava Strings.isNullOrEmpty :
if mystring and mystring.strip():
print "not blank string"
else:
print "blank string"
Vérifiez la longueur de la liste donnée par la méthode split ().
if len(your_string.split()==0:
print("yes")
Ou Comparez la sortie de la méthode strip () avec null.
if your_string.strip() == '':
print("yes")
Voici une réponse qui devrait fonctionner dans tous les cas:
def is_empty(s):
"Check whether a string is empty"
return not s or not s.strip()
Si la variable est None, elle s’arrêtera à not s
et ne sera plus évaluée (puisque not None == True
). Apparemment, la méthode strip()
prend en charge les cas habituels de tabulation, de nouvelle ligne, etc.
Je suppose que dans votre scénario, une chaîne vide est une chaîne qui est vraiment vide ou qui contient tous les espaces.
if(str.strip()):
print("string is not empty")
else:
print("string is empty")
Notez que ceci ne vérifie pas None
Pour vérifier si une chaîne n'est qu'un espace ou une nouvelle ligne
Utilisez ce code simple
mystr = " \n \r \t "
if not mystr.strip(): # The String Is Only Spaces!
print("\n[!] Invalid String !!!")
exit(1)
mystr = mystr.strip()
print("\n[*] Your String Is: "+mystr)
J'ai utilisé le suivant:
if str and not str.isspace():
print('not null and not empty nor whitespace')
else:
print('null or empty or whitespace')
Ressemblance avec la méthode statique de chaîne c # isNullOrWhiteSpace.
def isNullOrWhiteSpace(str):
"""Indicates whether the specified string is null or empty string.
Returns: True if the str parameter is null, an empty string ("") or contains
whitespace. Returns false otherwise."""
if (str is None) or (str == "") or (str.isspace()):
return True
return False
isNullOrWhiteSpace(None) -> True // None equals null in c#, Java, php
isNullOrWhiteSpace("") -> True
isNullOrWhiteSpace(" ") -> True