我该如何做:
if str(variable) == [contains text]:
健康)状况?
(或某些原因,因为我很确定我刚才写的东西是完全错误的)
我正在尝试检查random.choice
列表中的a是["",]
(空白)还是包含["text",]
。
Answers:
您可以将您的字符串与空字符串进行比较:
if variable != "":
etc.
但是您可以将其缩写为:
if variable:
etc.
说明:Anif
通过为您提供的逻辑表达式计算值来实际起作用:True
或False
。如果仅使用变量名(或诸如“ hello”之类的文字字符串)而不是逻辑测试,则规则是:空字符串计为False,所有其他字符串计为True。空列表和数字零也算作假,其他大多数情况也算作真。
== True
在Warcraft编辑器中省略该部分。
检查字符串是否为空的“ Pythonic”方法是:
import random
variable = random.choice(l)
if variable:
# got a non-empty string
else:
# got an empty string
只是说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
''
值为False
,因此,如果要获取True
何时s
为空字符串,则说if not s
。
对于python 3,可以使用bool()
>>> bool(None)
False
>>> bool("")
False
>>> bool("a")
True
>>> bool("ab")
True
>>> bool("9")
True
bool(0)
返回False
bool(0)
返回False
对我来说是可以预期的。为什么不应该呢?
string = "TEST"
try:
if str(string):
print "good string"
except NameError:
print "bad string"
if str(variable) == "my text":
?