关于python:如何检查 str(variable) 是否为空?

How to check whether a str(variable) is empty or not?

结果:如何做P></

1
if str(variable) == [contains text]:

condition。P></

(or something that漂亮,因为我认为我只是wrote is completely wrong)P></

我想如果Sort of check list is a random.choice我从["",]contains ["text",]或(空白)。P></


您可以将字符串与空字符串进行比较:

1
2
if variable !="":
    etc.

但你可以把它缩写为:

1
2
if variable:
    etc.

说明:if实际上是通过计算给定逻辑表达式的值来工作的:TrueFalse。如果只使用变量名(或像"hello"这样的文字字符串)而不是逻辑测试,则规则是:空字符串计为假,所有其他字符串计为真。空列表和数字0也算作假,而大多数其他东西算作真。


检查字符串是否为空的"pythonic"方法是:

1
2
3
4
5
6
import random
variable = random.choice(l)
if variable:
    # got a non-empty string
else:
    # got an empty string


默认情况下,空字符串为假:

1
2
3
4
>>> if not"":
...     print("empty")
...
empty

你只要说"以东十一〔一〕或"以东二十一〔二】。如在

1
2
3
s = ''
if not s:
    print 'not', s

所以在你的具体例子中,如果我理解正确…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>>> 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


1
2
3
4
5
element = random.choice(myList)
if element:
    # element contains text
else:
    # element is empty ''

对于python 3,可以使用bool()。

1
2
3
4
5
6
7
8
9
10
>>> bool(None)
False
>>> bool("")
False
>>> bool("a")
True
>>> bool("ab")
True
>>> bool("9")
True


How do i make an: if str(variable) == [contains text]: condition?

也许最直接的方法是:

1
2
if str(variable) != '':
  # ...

注意,if not ...溶液测试相反的条件。


有时我们在引号之间有更多的空格,然后使用这种方法

1
2
3
4
5
6
7
8
9
10
a ="  "
>>> bool(a)
True
>>> bool(a.strip())
False

if not a.strip():
    print("String is empty")
else:
    print("String is not empty")

1
2
3
4
5
6
string ="TEST"
try:
  if str(string):
     print"good string"
except NameError:
     print"bad string"


如果变量包含文本,则:

len(variable) != 0

它没有

len(variable) == 0