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

return s and len(s.strip()) > 0 s是字符串不是布尔类型啊

return s and len(s.strip()) > 0  返回false或者true  ,s是一个字符串,不是布尔类型啊,怎么会是false或者true呢

正在回答

2 回答

python与运算:只有两个布尔值都为 True 时,计算结果才为 True
True and True   # ==> True
True and False   # ==> False
False and True   # ==> False
False and False   # ==> False

Python把0、空字符串''和None看成 False,其他数值和非空字符串都看成 True

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

结果:['test', 'str', 'END']

因为s and len(s.strip()) 的结果大于0
所以len(s.strip())为true
所以s 为True
['test', None, '', 'str', '  ', 'END']
True-False-False-True-True-True

>>> s='  '
>>> len(s.strip())0
所以符合条件的,长度大于0 且又是字符串
只有['test', 'str', 'END']
>>> [len(s) for s in  ['test', 'str', 'END'] ]
>>>[4, 3, 3] # 长度分别为
len(s.strip()) > 0


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

玄鉴

非常感谢讲解
2018-05-02 回复 有任何疑惑可以回复我~

因为s只要非None就是True

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

举报

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

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

进入课程

return s and len(s.strip()) > 0 s是字符串不是布尔类型啊

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号