如何检查字符串(变量)是不是为空?
Posted
技术标签:
【中文标题】如何检查字符串(变量)是不是为空?【英文标题】:How to check whether a str(variable) is empty or not?如何检查字符串(变量)是否为空? 【发布时间】:2012-04-13 03:54:42 【问题描述】:如何制作:
if str(variable) == [contains text]:
条件?
(或者别的什么,因为我很确定我刚才写的完全错了)
我正在尝试检查列表中的random.choice
是["",]
(空白)还是包含["text",]
。
【问题讨论】:
你的意思是if str(variable) == "my text":
吗?
你好像有点糊涂了,我建议你看看python tutorial。
Most elegant way to check if the string is empty in Python?的可能重复
【参考方案1】:
test_str1 = ""
test_str2 = " "
# checking if string is empty
print ("The zero length string without spaces is empty ? : ", end = "")
if(len(test_str1) == 0):
print ("Yes")
else :
print ("No")
# prints No
print ("The zero length string with just spaces is empty ? : ", end = "")
if(len(test_str2) == 0):
print ("Yes")
else :
print ("No")
【讨论】:
【参考方案2】:Python 字符串是不可变的,因此在讨论其操作时处理起来更加复杂。请注意,带有空格的字符串实际上是一个空字符串,但大小不为零。 让我们看看两种不同的检查字符串是否为空的方法: 方法 #1:使用 Len() 使用 Len() 是检查零长度字符串的最通用方法。即使它忽略了一个事实,即只有空格的字符串实际上也应该被视为一个空字符串,即使它不是零。
方法#2:不使用
Not 运算符也可以执行类似于 Len() 的任务,并检查长度为 0 的字符串,但与上面相同,它认为只有空格的字符串也是非空的,这实际上不应该是真的。
祝你好运!
【讨论】:
【参考方案3】:在 if-else 中使用“not”
x = input()
if not x:
print("Value is not entered")
else:
print("Value is entered")
【讨论】:
【参考方案4】:您可以将您的字符串与空字符串进行比较:
if variable != "":
etc.
但你可以缩写如下:
if variable:
etc.
解释:if
实际上是通过计算您给它的逻辑表达式的值来工作的:True
或 False
。如果您只是使用变量名(或“hello”之类的文字字符串)而不是逻辑测试,则规则是:空字符串计为 False,所有其他字符串计为 True。空列表和数字 0 也算作假,而其他大多数情况都算作真。
【讨论】:
呵呵,我有点理解 If、True 和 False 的原理。魔兽争霸3触发器编辑器:'如果(这个单位等于那个单位)== True' 我猜你也可以在魔兽编辑器中省略== True
部分。
是的。从来没有真正想到过,呵呵,但这绝对是有帮助的。
这不一样。不要这样做。在 [14]: a = "" 在 [15]: if a.replace(' ', ''): ...: print 1 ...: 在 [16]: if a.replace(' ', ' ') == "": ...: 打印 1 ...: 1
哦,对了,@AndreaBergonzo 说的是:当您将字符串与 "" 进行比较时,您正在检查它是否为空——这被视为 False。【参考方案5】:
有时我们在引号之间有更多的空格,然后使用这种方法
a = " "
>>> bool(a)
True
>>> bool(a.strip())
False
if not a.strip():
print("String is empty")
else:
print("String is not empty")
【讨论】:
【参考方案6】:string = "TEST"
try:
if str(string):
print "good string"
except NameError:
print "bad string"
【讨论】:
通常在 *** 中对发布的代码进行注释是一种很好的做法。 虽然这个答案可能是正确且有用的,但最好在其中附上一些解释来解释它如何帮助解决问题。如果有更改(可能不相关)导致它停止工作并且用户需要了解它曾经是如何工作的,这在未来变得特别有用。 对不起,我的英语太差了,但以后我会记住评论我的帖子。【参考方案7】:检查字符串是否为空的“Pythonic”方法是:
import random
variable = random.choice(l)
if variable:
# got a non-empty string
else:
# got an empty string
【讨论】:
【参考方案8】:对于python 3,你可以使用bool()
>>> bool(None)
False
>>> bool("")
False
>>> bool("a")
True
>>> bool("ab")
True
>>> bool("9")
True
【讨论】:
这本来是完美的,但bool(0)
返回 False
@kaushalagrawal bool(0)
返回False
对我来说是可以预期的。为什么不应该?
没错,我不记得/不明白我为什么会这样【参考方案9】:
如果变量包含文本则:
len(variable) != 0
没有
len(variable) == 0
【讨论】:
【参考方案10】:只需说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
【讨论】:
我不明白。所以,如果我执行“variable = random.choice(list)”并且变量是空白“”,那么我可以只执行条件“if variable:”并且......是的,我真的没有得到任何其他东西你写... @user1275670,听起来你明白。但我添加了另一个例子以防万一。简而言之,''
的计算结果为False
,所以如果你想在s
是一个空字符串时得到True
,你可以说if not s
。【参考方案11】:
element = random.choice(myList)
if element:
# element contains text
else:
# element is empty ''
【讨论】:
【参考方案12】:空字符串默认为 False:
>>> if not "":
... print("empty")
...
empty
【讨论】:
【参考方案13】:如何创建:
if str(variable) == [contains text]:
条件?
或许最直接的方式是:
if str(variable) != '':
# ...
注意if not ...
解决方案测试相反条件。
【讨论】:
以上是关于如何检查字符串(变量)是不是为空?的主要内容,如果未能解决你的问题,请参考以下文章