Respuestas:
Usa el str.isspace()
método:
Regrese
True
si solo hay caracteres de espacio en blanco en la cadena y hay al menos un carácter, de loFalse
contrario.Un carácter es un espacio en blanco si en la base de datos de caracteres Unicode (ver unicodedata ), o su categoría general es Zs ("Separador, espacio"), o su clase bidireccional es WS, B o S.
Combina eso con un caso especial para manejar la cadena vacía.
Alternativamente, puede usar str.strip()
y verificar si el resultado está vacío.
None
, o''
if len(str) == 0 or str.isspace():
len(my_str) == 0
también se puede escribir not my_str
.
>>> tests = ['foo', ' ', '\r\n\t', '', None]
>>> [not s or s.isspace() for s in tests]
[False, True, True, True, True]
True
a None
?
Quieres usar el isspace()
método
str. isspace ()
Devuelve verdadero si solo hay caracteres de espacio en blanco en la cadena y hay al menos un carácter, falso de lo contrario.
Eso se define en cada objeto de cadena. Aquí hay un ejemplo de uso para su caso de uso específico:
if aStr and (not aStr.isspace()):
print aStr
Puedes usar el str.isspace()
método.
Para aquellos que esperan un comportamiento como Apache StringUtils.isBlank o Guava Strings.isNullOrEmpty :
if mystring and mystring.strip():
print "not blank string"
else:
print "blank string"
Verifique la longitud de la lista dada por el método split ().
if len(your_string.split()==0:
print("yes")
O compare la salida del método strip () con nulo.
if your_string.strip() == '':
print("yes")
len()
funciona en cadenas. Además, el OP no pedía probar la cadena vacía, sino una cadena que fuera todos los espacios. Sin embargo, tu segundo método no es malo. Además, sus padres que rodean el condicional no son necesarios en Python.
==0
con==1
if len(your_string.split())==0:
-> if not your_string.split():
, if your_string.strip() == '':
-> if not your_string.strip():
. En cualquier caso, el primero es inferior a las soluciones existentes, y el segundo ya se ha mencionado en otras respuestas.
Aquí hay una respuesta que debería funcionar en todos los casos:
def is_empty(s):
"Check whether a string is empty"
return not s or not s.strip()
Si la variable es Ninguna, se detendrá en not s
y no evaluará más (desde not None == True
). Aparentemente, el strip()
método se ocupa de los casos habituales de tabulación, nueva línea, etc.
not None == True
probablemente sea más claro decirlo None is False
. Además, ==
no debe usarse para estas comparaciones.
Supongo que en su escenario, una cadena vacía es una cadena que está realmente vacía o que contiene todo el espacio en blanco.
if(str.strip()):
print("string is not empty")
else:
print("string is empty")
Tenga en cuenta que esto no verifica None
Solía seguir:
if str and not str.isspace():
print('not null and not empty nor whitespace')
else:
print('null or empty or whitespace')
None
?
La semejanza con el método estático de cadena c # esNullOrWhiteSpace.
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
y ""
son Falsy, lo que sólo puede:return not str or str.isspace()
U+00A0
oALT+160
. Sin embargo, parece arreglado en Python 2.7.