如何检查字符串(变量)是不是为空?

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 实际上是通过计算您给它的逻辑表达式的值来工作的:TrueFalse。如果您只是使用变量名(或“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 sif 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 ... 解决方案测试相反条件。

【讨论】:

以上是关于如何检查字符串(变量)是不是为空?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查Lua中的值是不是为空?

如何在 Perl 中检查多个变量是不是为空

Oracle 11 PL/SQL:检查变量是不是为空、空字符串和无结果

如何在python中检查字符串是不是为空[重复]

如何在剃刀视图中检查模型字符串属性是不是为空

如何在swift 3中检查字符串是不是为空? [复制]