Python3 三元条件判断表达式(if else/and or)

本文介绍了Python中if else表达式和and or表达式的用法。if else表达式先判断条件,为真返回前者,否则返回后者;and or表达式依据特定原理运算,AND优先级高于OR。还给出不同数据类型下的运算结论,以及None在特殊情况的运算结果。

if else表达式用法:

c = a if a>b else b          # 先判断if条件,如果为True,返回a,否则返回b

and or表达式用法:

其原理是利用P and Q,在Python中如果P为假,那么Python将不会继续执行Q,而直接判定整个表达式为假(P值),如果P为真,那就还要继续执行Q来决定整个表达式值;同样的P or Q,如果P为真,那么就不会继续执行Q了

当数据都为布尔类型时,运算结果如下:

true and true = True
true and false = False
false and true = False
false and false = False
true or true = True
true or false = True
false or true = True
false or false = False

当数据存在布尔类型时,运算结果如下:

12 and true = True
true and 12 = 12
false and 12 = False
12 and false = False
12 or true = 12
true or 12 = True
false or 12 = 12
12 or false = 12

由结果可得以下结论:

(1)对于AND,若运算数据中存在False,则为False;否则,返回最右端数据。

(2)对于OR,若运算数据中存在False,则返回剩余数据;否则,返回最左端数据。

当数据都不为布尔类型时,运算结果如下:

6 or 7 = 6
6 and 7 = 7

'a' or 'b' = 'a'
'a' and 'b' = 'b'

6 or 'a' = 6
6 and 'a' = 'a'

 可知,结论还适用。

在Python中,AND的优先级高于OR,因此,我们再按照之前的结论或者原理,可以推算出结果。写代码的时候最好根据原理来写,如果有大量的and/or,就可以用结论来判断。

5 or 6 and 7 = 5
5 and 6 or 7 = 6
5 or 6 or 7 = 5
5 and 6 and 7 = 7

'a' or 'b' and 'c' = 'a'
'a' and 'b' or 'c' = 'b'
'a' or 'b' or 'c' = 'a'
'a' and 'b' and 'c' = 'c'

1 or 'b' and 'c' = 1
1 and 'b' or 'c' = 'b'
1 or 'b' or 'c' = 1
1 and 'b' and 'c' = 'c'

特殊情况None(不包含布尔):

1.当与具体值比较时:and返回的是None,or返回的是具体值

'a' and None = None
None and 'a' = None
'a' or None = 'a'
None or 'a' = 'a'

1 and None = None
None and 1 = None
1 or None = 1
None or 1 = 1

None and 1 or 'a' = 'a'
1 and None or 'a' = 'a'
1 and 'a' or None = 'a'

2.当与空值(如:空列表/空集合/空字典)比较时:and返回的是左边的值,or返回的是右边的值

[] and None = []
None and [] = None
[] or None = None
None or [] = []

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值