所以我以前遇到过代码问题,因为当我遍历foodList时,我得到一个空行。
有人建议使用'if x.strip():'方法,如下所示。
for x in split:
if x.strip():
foodList = foodList + [x.split(",")]
它工作正常但我只想知道它实际意味着什么。我知道它会删除空格,但上面的if语句不会说x是否有空格然后是真的。哪个与我想要的相反?只是想把我的术语和它在幕后做的事情包括在内。
答案 0 :(得分:10)
在Python中,“空”对象---空列表,空字典,以及在这种情况下,空字符串---在布尔上下文中被视为false(如if
)。任何非空的字符串都将被视为true。剥离空格后strip
返回字符串。如果字符串只包含空格,那么strip()
将删除所有内容并返回空字符串。所以if strip()
表示“如果strip()
的结果不是空字符串”---也就是说,如果字符串包含空格以外的内容。
答案 1 :(得分:3)
方法strip()返回所有字符的字符串副本 已从字符串的开头和结尾剥离 (默认的空白字符)。
因此,如果没有指定输入字符,它会从字符串的开头和结尾修剪空白。此时,它只是控制字符串x
是否为空而不考虑空格,因为empty
字符串在python中被解释为false
答案 2 :(得分:0)
简而言之,当用户可以输入一些数据并且您要确保用户输入了什么而不是什么都没有时,使用此语法。
让我们进一步简化它:
x.strip()
为空,表示用户未输入任何内容。在这种情况下,x.strip()
是False
,因为空字符串是“ Falsey” x.strip()
不为空,表示用户确实输入了某些内容(空格除外)。在这种情况下,x.strip()
将返回删除了结尾和后缀的字符串,即“ Truthy”。