Как проверить, пуста ли строка в Python?
Например,
"<space><space><space>"
пуст, поэтому
"<space><tab><space><newline><space>"
, так что
"<newline><newline><newline><tab><newline>"
и т.д.
Как проверить, пуста ли строка в Python?
Например,
"<space><space><space>"
пуст, поэтому
"<space><tab><space><newline><space>"
, так что
"<newline><newline><newline><tab><newline>"
и т.д.
yourString.isspace()
"Возвращает true, если в строке есть только пробельные символы, и есть хотя бы один символ, иначе false."
Объедините это со специальным случаем для обработки пустой строки.
В качестве альтернативы вы можете использовать
strippedString = yourString.strip()
И затем проверьте, не является ли strippedString пустым.
>>> tests = ['foo', ' ', '\r\n\t', '', None]
>>> [bool(not s or s.isspace()) for s in tests]
[False, True, True, True, True]
>>>
Вы хотите использовать метод isspace()
ул. isspace()
Возвращает true, если в строке есть только пробельные символы и есть хотя бы один символ, иначе false.
Это определено для каждого строкового объекта. Вот пример использования для вашего конкретного случая использования:
if aStr and (not aStr.isspace()):
print aStr
для тех, кто ожидает такое поведение, как apache 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() с нулем.
if your_string.strip() == '':
print("yes")
Вот ответ, который должен работать во всех случаях:
def is_empty(s):
"Check whether a string is empty"
return not s or not s.strip()
Если переменная None, она остановится на not s
и больше не будет оцениваться (поскольку not None == True
). По-видимому, метод strip()
заботится о обычных случаях табуляции, новой строки и т.д.
Я предполагаю, что в вашем сценарии пустая строка - это строка, которая действительно пуста или та, которая содержит все пробелы.
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')
Чтобы проверить, является ли строка просто пробелами или новой строкой
Используйте этот простой код
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)
Сходство со статическим методом С# 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