for s in ['test', None, '', 'str', ' ?', 'END']:? ? print(s and len(s.strip()) > 0)輸出結(jié)果:TrueNoneTrueFalseTrue為什么第二個返回None不返回false;第三個返回空格,那第5個為什么返回false
1 回答
已采納

習(xí)慣受傷
TA貢獻(xiàn)885條經(jīng)驗 獲得超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
提交
取消