转自:https://my.oschina.net/chuangspace/blog/410833
摘要: 以自己的理解,分析and与or在python中的情况,不对求指正,谢谢
>>> 1 and 2 and 3
3
>>> False and 1 and 2
False
>>> 1 and 2 and 3 and 4
4
>>> 1 and 2 and 3 and False
False
>>> 1 or 2 or 3
1
>>> False or 1 or 2
1
>>> 1 and 2 and 3 or False and 1
3
在python中and与or执行布尔逻辑运算,但返回的是实际值。
1.全为and,如果都为真,则返回最后一个变量值;如果为假,则返回第一个假值
2.全为or,如果都为假则返回最后一个值;如果为真,则返回第一个真值
3.and 与or:
>>> 1 and 2 or False
2
>>> False and 1 or 2
2
(a and b ) or c :如果a and b为真则结果为b,若a and b为假,结果为c,其实原理与and和or的一样,类似于C中到bool?a:b
另外:or有短路现象,如果为真,后面的不执行(PS:谢谢提醒)
>>>False and 1 or 2
2
>>> 1 or 2 and False
1
>>> (1 or 2 ) and False
False