Antworten:
Verwenden Sie die str.isspace()
Methode:
Rückgabe,
True
wenn die Zeichenfolge nur Leerzeichen enthält undFalse
andernfalls mindestens ein Zeichen .Ein Zeichen ist ein Leerzeichen, wenn in der Unicode-Zeichendatenbank (siehe Unicodedata ) entweder seine allgemeine Kategorie Zs („Separator, Leerzeichen“) oder seine bidirektionale Klasse WS, B oder S ist.
Kombinieren Sie dies mit einem Sonderfall für die Behandlung der leeren Zeichenfolge.
Alternativ können Sie verwenden str.strip()
und prüfen, ob das Ergebnis leer ist.
None
, oder''
if len(str) == 0 or str.isspace():
len(my_str) == 0
kann auch geschrieben werden not my_str
.
>>> tests = ['foo', ' ', '\r\n\t', '', None]
>>> [not s or s.isspace() for s in tests]
[False, True, True, True, True]
True
zu lassen None
?
Sie möchten die isspace()
Methode verwenden
str. isspace ()
Geben Sie true zurück, wenn die Zeichenfolge nur Leerzeichen enthält und mindestens ein Zeichen vorhanden ist, andernfalls false.
Das ist für jedes String-Objekt definiert. Hier ist ein Anwendungsbeispiel für Ihren speziellen Anwendungsfall:
if aStr and (not aStr.isspace()):
print aStr
Sie können die str.isspace()
Methode verwenden.
für diejenigen, die ein Verhalten wie den Apache StringUtils.isBlank oder Guava Strings.isNullOrEmpty erwarten :
if mystring and mystring.strip():
print "not blank string"
else:
print "blank string"
Überprüfen Sie die Länge der Liste mit der Methode split ().
if len(your_string.split()==0:
print("yes")
Oder Vergleichen Sie die Ausgabe der strip () -Methode mit null.
if your_string.strip() == '':
print("yes")
len()
arbeitet an Zeichenfolgen. Außerdem bat das OP nicht darum, nach der leeren Zeichenfolge zu testen, sondern nach einer Zeichenfolge, die nur aus Leerzeichen bestand. Ihre zweite Methode ist jedoch nicht schlecht. Außerdem werden Ihre Parens, die die Bedingung umgeben, in Python nicht benötigt.
==0
mit==1
if len(your_string.split())==0:
-> if not your_string.split():
, if your_string.strip() == '':
-> if not your_string.strip():
. In jedem Fall ist die erste den vorhandenen Lösungen unterlegen, und die zweite wurde bereits in anderen Antworten erwähnt.
Hier ist eine Antwort, die in allen Fällen funktionieren sollte:
def is_empty(s):
"Check whether a string is empty"
return not s or not s.strip()
Wenn die Variable None ist, stoppt sie bei not s
und wird (seit not None == True
) nicht weiter ausgewertet . Anscheinend strip()
kümmert sich die Methode um die üblichen Fälle von Tabulatoren, Zeilenumbrüchen usw.
not None == True
es wohl klarer nur zu sagen None is False
. Sollte auch ==
nicht für diese Vergleiche verwendet werden.
Ich gehe in Ihrem Szenario davon aus, dass eine leere Zeichenfolge eine Zeichenfolge ist, die wirklich leer ist oder die alle Leerzeichen enthält.
if(str.strip()):
print("string is not empty")
else:
print("string is empty")
Beachten Sie, dass dies nicht überprüft wird None
Ich habe folgendes verwendet:
if str and not str.isspace():
print('not null and not empty nor whitespace')
else:
print('null or empty or whitespace')
None
?
Um zu überprüfen, ob eine Zeichenfolge nur ein Leerzeichen oder eine neue Zeile ist
Verwenden Sie diesen einfachen Code
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)
Ähnlichkeit mit der statischen Methode c # string 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
return (str is None) or (str == "") or (str.isspace())
None
und ""
sind falsch, also können Sie einfach:return not str or str.isspace()
U+00A0
oder enthältALT+160
. Sieht jedoch in Python 2.7 behoben aus.