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

python and判断问题

python and判断问题

淡淡凉 2017-01-12 16:59:22
for s in ['test', None, '', 'str', '  ', 'END']:    print(s and len(s.strip()) > 0)输出结果:TrueNoneTrueFalseTrue为什么第二个返回None不返回false;第三个返回空格,那第5个为什么返回false
查看完整描述

1 回答

已采纳
?
习惯受伤

TA贡献885条经验 获得超1144个赞

在python中,

0, 0.0, "", b"", False, None, (), [], {}

均为False值,所以:

第二个:

None and len(None.strip()) > 0

由于and前边的条件为None,所以直接返回None,跳过了后边的条件判断。

第三个:

"" and len("".strip()) > 0

由于and前边的条件是"",是false,所以直接返回了"",跳过了后边的条件判断

第五个:

" " and len(" ".strip()) > 0

and前边的条件为True,所以判断第二个条件,len(" ".strip())=0,不大于0,所以返回False.

查看完整回答
3 反对 回复 2017-01-13
  • 1 回答
  • 1 关注
  • 1536 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信