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.
添加回答
举报
0/150
提交
取消