【问题标题】:what does 'if x.strip( )' mean?'if x.strip()' 是什么意思?
【发布时间】:2013-06-23 19:02:26
【问题描述】:

所以我之前遇到过代码问题,因为当我遍历 foodList 时得到一个空行。

有人建议使用 'if x.strip():' 方法,如下所示。

for x in split:
  if x.strip():
    foodList = foodList + [x.split(",")]

它工作正常,但我只想知道它的实际含义。我知道它会删除空格,但上面的 if 语句不会说如果 x 有空格然后是真的。这与我想要的相反?只是想先介绍一下术语以及它在幕后所做的事情。

【问题讨论】:

  • 它的意思是:“如果字符串不只是空格”(更准确地说:“如果字符串,在去掉两边的任何空格后,包含一些字符......”跨度>

标签: python if-statement strip


【解决方案1】:

在 Python 中,“空”对象 --- 空列表、空 dict 以及本例中的空字符串 --- 在布尔上下文(如 if)中被认为是错误的。任何非空字符串都将被视为真。 strip 在去除空格后返回字符串。如果字符串仅包含空格,则strip() 将删除所有内容并返回空字符串。所以if strip() 的意思是“如果strip() 的结果不是空字符串” --- 也就是说,如果字符串包含除空格之外的其他内容。

【讨论】:

    【解决方案2】:

    strip() 方法返回字符串的副本,其中所有字符 已从字符串的开头和结尾剥离 (默认空白字符)。

    因此,如果未指定输入字符,它会从字符串的开头和结尾修剪空格。此时,它只是控制字符串x是否为空而不考虑空格,因为empty字符串在python中被解释为false

    【讨论】:

      【解决方案3】:

      简单地说,当用户可以输入一些数据并且您想确保用户输入了某些内容而不是什么都没有时,使用此语法。

      让我们进一步简化:

      • case(1): x.strip() 为空,表示用户没有输入任何内容。在这种情况下,x.strip()False,因为空字符串是“Falsey”
      • case(2):x.strip() 不为空,表示用户确实输入了某些内容(除了空格)。在这种情况下,x.strip() 将返回删除了前后空格的字符串,即“Truthy”。

      【讨论】:

        猜你喜欢
        • 2011-03-09
        • 1970-01-01
        • 1970-01-01
        • 2018-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-05
        • 2021-12-24
        相关资源
        最近更新 更多