Відповіді:
Використовуйте str.isspace()метод:
Поверніться,
Trueякщо в рядку є лише символи пробілу, а вFalseіншому випадку є принаймні один символ .Символ - це пробіл, якщо в базі даних символів Unicode (див. Unicodedata ) або загальною його категорією є Zs ("роздільник, пробіл"), або його двонаправлений клас є одним із WS, B або S.
Поєднайте це зі спеціальним корпусом для обробки порожнього рядка.
Можна також використати str.strip()та перевірити, чи результат порожній.
None, або''
if len(str) == 0 or str.isspace():
len(my_str) == 0також можна написати not my_str.
>>> tests = ['foo', ' ', '\r\n\t', '', None]
>>> [not s or s.isspace() for s in tests]
[False, True, True, True, True]
Trueдо None?
Ви хочете скористатися isspace()методом
вул. isspace ()
Повернути істину, якщо в рядку є лише символи пробілу, а принаймні один символ, інакше помилковий.
Це визначено для кожного об'єкта рядка. Ось приклад використання для вашого конкретного випадку використання:
if aStr and (not aStr.isspace()):
print aStr
Можна використовувати str.isspace()метод.
для тих, хто очікує такої поведінки, як апаш StringUtils.isBlank або Guava Strings.isNullOrEmpty :
if mystring and mystring.strip():
print "not blank string"
else:
print "blank string"
Перевірте довжину списку, задану методом split ().
if len(your_string.split()==0:
print("yes")
Або порівняйте вихідний метод strip () з null.
if your_string.strip() == '':
print("yes")
len()працює на струнах. Крім того, ОП не просив тестувати порожню рядок, а для рядка, який був усіма пробілами. Ваш другий метод не поганий. Крім того, ваші парени, що оточують умовне, не потрібні в python.
==0з==1
if len(your_string.split())==0:-> if not your_string.split():, if your_string.strip() == '':-> if not your_string.strip():. У будь-якому випадку, перша поступається існуючим рішенням, а друга вже згадується в інших відповідях.
Ось відповідь, яка повинна працювати у всіх випадках:
def is_empty(s):
"Check whether a string is empty"
return not s or not s.strip()
Якщо змінна є None, вона зупиняється на not sі не оцінює далі (з тих пір not None == True). Мабуть, strip()метод піклується про звичні випадки вкладки, нового рядка тощо.
not None == True це, мабуть, зрозуміліше просто сказати None is False. Також ==не слід використовувати для цих порівнянь.
Я припускаю, що у вашому сценарії порожня рядок - це рядок, який справді порожній, або той, що містить увесь пробіл.
if(str.strip()):
print("string is not empty")
else:
print("string is empty")
Зверніть увагу, це не перевіряється None
Я використовував наступне:
if str and not str.isspace():
print('not null and not empty nor whitespace')
else:
print('null or empty or whitespace')
None?
Перекомплектувати статичним методом c # string jeNullOrWhiteSpace.
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і ""фальшиве, тож ви можете просто:return not str or str.isspace()
U+00A0абоALT+160. Однак виправлено в Python 2.7.