python and判断问题

for s in ['test', None, '', 'str', '  ', 'END']:

    print(s and len(s.strip()) > 0)

输出结果:

True

None


True

False

True

为什么第二个返回None不返回false;第三个返回空格,那第5个为什么返回false

淡淡凉
浏览 1543回答 1
1回答

习惯受伤

在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()) > 0and前边的条件为True,所以判断第二个条件,len(" ".strip())=0,不大于0,所以返回False.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python