代码不理解
def is_not_empty(s): return s and len(s.strip()) > 0 上面的return的内容不理解,求解!谢谢
filter(is_not_empty, ['test', None, '', 'str', ' ', 'END'])
def is_not_empty(s): return s and len(s.strip()) > 0 上面的return的内容不理解,求解!谢谢
filter(is_not_empty, ['test', None, '', 'str', ' ', 'END'])
2017-08-26
s and len(s.strip()) > 0这里是一个bool表达式,,相当于(s) and (len(len(s.strip()) > 0),如果你学过其他计算机语言,理解起来就是s && len(s.strip()) > 0,其中s.strip()指的是去掉字符串首尾的空格剩下的字符串,len(...)就是长度了
根据python的and运算规则,0,none,“”表示逻辑的False,如果此处s为False,则返回False,如果s不为False,当s.strip()剩下的为False,则返回0,否则返回True
当然,有时候and,or运算返回的是值,而不是布尔值(True,False),这点和其他语言(C、C++,java,C#等)不太一样,不明白可以百度或者追问
举报