为了账号安全,请及时绑定邮箱和手机立即绑定

return s and len(s.strip()) > 0中s是什么

代码中的s有什么用,为什么不直接return len(s.strip)>0。虽然试过会报错,不过不懂为什么

def is_not_empty(s):
   return s and len(s.strip()) > 0
filter(is_not_empty, ['test', None, '', 'str', '  ', 'END'])

正在回答

2 回答

因为题目是你要返回不为空的字符串啊,如果你只返回 len(s.strip())>0 就变成返回布尔值了,如果是空的返回的结果就是False

0 回复 有任何疑惑可以回复我~
#1

慕仔9483987 提问者

可是不懂为什么下面的代码运行起来会报错,AttributeError: 'NoneType' object has no attribute 'strip',而题目中计算到None时不会报错? s=None print s.strip()
2017-10-31 回复 有任何疑惑可以回复我~

懂啦,s会返回一个ture或false,当s为true时计算and以后的内容,当s为fasle时直接跳过了and后的计算

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

return s and len(s.strip()) > 0中s是什么

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信