【问题标题】: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",]

【问题讨论】:

标签: python string conditional-statements


【解决方案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"
          

          【讨论】:

          • 通常在 StackOverflow 中对发布的代码进行注释是一种很好的做法。
          • 虽然这个答案可能是正确且有用的,但最好在其中附上一些解释来解释它如何帮助解决问题。如果有更改(可能不相关)导致它停止工作并且用户需要了解它曾经是如何工作的,这在未来变得特别有用。
          • 对不起,我的英语太差了,但以后我会记住评论我的帖子。
          【解决方案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 ... 解决方案测试相反条件。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2020-05-28
                    • 2011-12-19
                    • 2011-11-25
                    • 2012-03-23
                    • 2019-01-25
                    相关资源
                    最近更新 更多