Как проверить, является ли str (переменная) пустым или нет?
Как мне сделать:
if str(variable) == [contains text]:
состояние?
(или что-то, потому что я уверен, что то, что я только что написал, совершенно неверно)
Я пытаюсь проверить, есть ли random.choice
из моего списка ["",]
(пусто) или содержит ["text",]
.
Ответы
Ответ 1
Вы можете просто сравнить свою строку с пустой строкой:
if variable == "":
etc.
Но вы можете сократить это следующим образом:
if variable:
etc.
Объяснение: if
фактически работает, вычисляя значение для логического выражения, которое вы ему даете: True
или False
. Если вы просто используете имя переменной (или литеральную строку типа "привет" ) вместо логического теста, это правило: пустая строка считается False, все остальные строки считаются True. Пустые списки и число ноль также считаются ложными, и большинство других вещей считаются истинными.
Ответ 2
По умолчанию пустые строки False:
>>> if not "":
... print("empty")
...
empty
Ответ 3
"Pythonic" способ проверить, является ли строка пустой:
variable = random.choice(l)
if variable:
# got a non-empty string
else:
# got an empty string
Ответ 4
Просто скажите if s
или if not s
. Как и в
s = ''
if not s:
print 'not', s
Итак, в вашем конкретном примере, если я правильно его понимаю...
>>> import random
>>> l = ['', 'foo', '', 'bar']
>>> def default_str(l):
... s = random.choice(l)
... if not s:
... print 'default'
... else:
... print s
...
>>> default_str(l)
default
>>> default_str(l)
default
>>> default_str(l)
bar
>>> default_str(l)
default
Ответ 5
element = random.choice(myList)
if element:
# element contains text
else:
# element is empty ''
Ответ 6
Как сделать условие: if str(variable) == [contains text]:
?
Возможно, самый прямой способ:
if str(variable) != '':
# ...
Обратите внимание, что решения if not ...
проверяют противоположное условие.
Ответ 7
если переменная содержит текст, то:
len(variable) != 0
этого не делает
len(variable) == 0
Ответ 8
Для python 3 вы можете использовать bool()
>>> bool(None)
False
>>> bool("")
False
>>> bool("a")
True
>>> bool("ab")
True
>>> bool("9")
True