0 or 1,1 and 0-不止于python
最近小编遇到很头疼的的一件事
就是以下这几道运算题 ,以下结果是小编经过大量的运算得出的
一.或运算
**1.**0 or 1
结果为:1
**2.**1 or 0
结果为:1
**3.**1 or 2
结果为:1
**4.**2 or 1
结果为:2
**5.**0 or []
结果为:[]
6.[] or 0
结果为:0
二.与运算
**1.**0 and 1
结果为:0
**2.**1 and 0
结果为:0
**3.**1 and 2
结果为:2
**4.**2 and 1
结果为:1
5.‘ ‘ and 0
结果为:’ ‘
**6.**0 and ‘ ‘
结果为:0
三.混合运算
**1.**1 < ( 2 == 2)
结果为:False 这道题就不用多说了,2==2为True,True换成数字为1,1<1明显为Flase
**2.**1 < 2 == 2
结果为:True
按照正常思路,比较运算优先级比等于优先级高,所以这道题先算1 < 2 为True,True为1,1不等于2,所以为Flase
但是,答案明明就是True,实际上这道题是这样算的:
1 < 2 and 2 == 2 这样一转变,是不是立马就明白了
因为逻辑运算优先级低,所以最后运算为:True and True
总结:
1.or:或运算的两边,有真则真;若都为真,则选前者;若都为假,则选后者;
2.and:与运算的两边,有假则假;若都为真,则选后者;若都为假,则选前者;
3.混合运算时,应当考虑运算符优先级的问题,当有括号时,先算括号内的运算
作者:
胖胖不胖
版权声明:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 不止于python
感谢您的支持,我会继续努力!
微信支付
支付宝