Yanıtlar:
str.isspace()
Yöntemi kullanın :
True
Dizede yalnızca boşluk karakterleri varsa ve en az bir karakter varsa geri dönünFalse
.Bir karakter, Unicode karakter veritabanında (bkz. Unicodedata ), genel kategorisi Zs (“Ayırıcı, boşluk”) veya çift yönlü sınıfı WS, B veya S'den biriyse boşluktur.
Bunu boş ipi işlemek için özel bir çanta ile birleştirin.
Alternatif olarak, str.strip()
sonucun boş olup olmadığını kontrol edebilir ve kontrol edebilirsiniz.
None
, ya''
if len(str) == 0 or str.isspace():
len(my_str) == 0
da yazılabilir not my_str
.
>>> tests = ['foo', ' ', '\r\n\t', '', None]
>>> [not s or s.isspace() for s in tests]
[False, True, True, True, True]
True
için None
?
isspace()
Yöntemi kullanmak istiyorsunuz
str. isspace ()
Dizede yalnızca boşluk karakterleri varsa ve en az bir karakter varsa true değerini döndürür, aksi takdirde false olur.
Bu, her dize nesnesinde tanımlanır. Özel kullanım durumunuz için bir kullanım örneği:
if aStr and (not aStr.isspace()):
print aStr
str.isspace()
Yöntemi kullanabilirsiniz .
apache StringUtils.isBlank veya Guava Strings.isNullOrEmpty gibi bir davranış bekleyenler için :
if mystring and mystring.strip():
print "not blank string"
else:
print "blank string"
Split () yöntemiyle verilen listenin uzunluğunu kontrol edin.
if len(your_string.split()==0:
print("yes")
Veya strip () yönteminin çıktısını null ile karşılaştırın.
if your_string.strip() == '':
print("yes")
len()
, dizeler üzerinde çalışır. Ayrıca, OP boş dizeyi sınamak istemiyordu, ancak tüm boşluklar olan bir dizeyi sınamak istiyordu. İkinci yönteminiz kötü değil. Ayrıca, koşullu olan parensiniz python'da gerekli değildir.
==0
ile==1
if len(your_string.split())==0:
-> if not your_string.split():
, if your_string.strip() == '':
-> if not your_string.strip():
. Her durumda, birincisi mevcut çözümlerden daha düşüktür ve ikincisi diğer cevaplarda zaten belirtilmiştir.
İşte her durumda çalışması gereken bir cevap:
def is_empty(s):
"Check whether a string is empty"
return not s or not s.strip()
Değişken Yok ise, durur not s
ve daha fazla değerlendirilmez (o zamandan beri not None == True
). Görünüşe göre, strip()
yöntem her zamanki sekme, yeni satır, vb.
not None == True
muhtemelen söylemek daha açıktır None is False
. Ayrıca, ==
bu karşılaştırmalar için kullanılmamalıdır.
Senaryoda varsayıyorum, boş bir dize gerçekten boş bir dize ya da tüm beyaz boşluk içeren bir dizedir.
if(str.strip()):
print("string is not empty")
else:
print("string is empty")
Bunun kontrol etmediğini unutmayın None
Aşağıdaki kullandım:
if str and not str.isspace():
print('not null and not empty nor whitespace')
else:
print('null or empty or whitespace')
None
?
C # string statik yöntemiyle benzerlik 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
ve ""
böylece olabildiğince, falsy sadece:return not str or str.isspace()
U+00A0
veyaALT+160
. Ancak Python 2.7'de sabit görünüyor.