所以我之前在代码中遇到了问题,因为当我迭代foodList时,我得到了一个空行。
有人建议使用'if x.strip():‘方法,如下所示。
for x in split:
if x.strip():
foodList = foodList + [x.split(",")]
它工作得很好,但我只想知道它的实际含义。我知道它删除了空格,但上面的if语句不是说如果x有空格则为true吗?这会和我想要的相反吗?我只想围绕着术语和它在幕后做的事情展开我的演讲。
发布于 2013-06-24 03:04:44
在Python中,“空”对象-空列表、空字典,以及本例中的空字符串-在布尔上下文中被认为是假的(如if
)。任何不为空的字符串都将被视为true。strip
返回去掉空格后的字符串。如果字符串只包含空格,则strip()
将剥离所有内容并返回空字符串。因此,if strip()
的意思是“如果strip()
的结果不是空字符串”-如果字符串包含空格以外的内容。
发布于 2013-06-24 03:05:30
方法()返回字符串的副本,其中的所有字符都已从字符串的开头和结尾(默认空白字符)中剥离。
因此,如果没有指定输入字符,它会从字符串的开头和结尾去掉空格。此时,它只控制字符串x
是否为空,而不考虑空格,因为empty
字符串在python中被解释为false
发布于 2020-04-22 14:45:58
简单地说,当用户可以输入一些数据,而您希望确保用户输入了一些数据,而不是什么也没有输入时,就会使用这种语法。
让我们进一步简化它:
x.strip()
为空,表示用户未输入任何内容。在本例中,x.strip()
是False
,因为空字符串不是空的,x.strip()
不是空的,这意味着用户确实输入了一些东西(而不是空格)。在这种情况下,x.strip()
将返回删除了空格尾部和前面的字符串,即“the”。https://stackoverflow.com/questions/17264226
复制相似问题