return s and len(s.strip()) > 0,返回的是什么?
return len(s.strip()) > 0这个语句有什么作用呢?
return len(s.strip()) > 0这个语句有什么作用呢?
2015-03-06
我们一步一步解释:
A:首先搞清楚运算的优先级:
按照从低到高优先级的顺序;同行为相同优先级
1 Lambda #运算优先级最低 2 逻辑运算符: or 3 逻辑运算符: and 4 逻辑运算符:not 5 成员测试: in, not in 6 同一性测试: is, is not 7 比较: <,<=,>,>=,!=,== 8 按位或: | 9 按位异或: ^10 按位与: &11 移位: << ,>>12 加法与减法: + ,-13 乘法、除法与取余: *, / ,%14 正负号: +x,-x
这里我们就要先算 len(s.strip()) > 0 看结果 是Ture 还是 False
然后再进行 AND 运算
B: 如果列表里面有 “none”None类型没有strip方法,执行会报错。前面加s,当s为None时,执行到and前面已经可以判定为False,and后的部分就不会被执行了。
举报