课程
/后端开发
/Python
/python进阶
返回语句中 and 换成 if 为什么是不对的
2019-06-15
源自:python进阶 2-10
正在回答
and 是与运算,两边都为真,才返回真
而这里s and len(s.strip())>0
其中先看 s 本身是否为真,
再看 len(s.strip())>0 ,也就是去掉 s 中的空白符(包括'\n', '\r', '\t', ' ')后,看是否为真
此时,两边都为真的情况下,才说明这个s是真
这个地方运用了and短路的特性,如果说s是none使用strip的话会发生错误,而通过短路空字符串被当作false,就不会执行strip产生错误
这里需要同时达到 and 前后的两个条件都为真 返回的预算结果才为Ture 。filter() 的第一个参数为Ture 的时候才会保留数值,为False 的时候不生效
这里需要一个返回值,你返回了一个语句
filter()第一个参数是写一个函数返回true和false的功能,是false才过滤掉 你写成if返回值不对
and不出意外的话就是“与”,既要满足前面s不为none,又要满足后面不为空格
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计