[转载] python的短逻辑

参考链接: Python中的短路技术

python中的与(and)和或(or)都是短路的与或,短路指的是当通过第一个值能判断出结果时,就不再去查看第二个值了。 

Python支持布尔类型的数据,布尔类型只有True和False两种值,但是布尔类型有以下几种运算: 

与(and)运算:对于与运算,由于要求两个都为True结果才为True,所以如果与运算的第一个值是False,这时无论第二个值是什么,最终结果都会是False。因此与运算的第一个值如果是False,则第二个值就不会再执行查看了。 

print(True and True)

print(True and False)   

print(False and True)  

print(False and False) 

 

# 输出如下:

# True

# False

# False

# False

 

或(or)运算:只要有一个布尔值为 True,计算结果就是 True。或运算,要求有一个True就会返回True,所以只要或运算的第一个值是True,就不会再查看第二个值了。总结起来就是与运算是找False的,找到False了就不会再看第二个值了。或运算时找True的,找到True了就不会再看第二个值了。 

print(True or True)

print(True or False)

print(False or True)

print(False or False)

 

# 输出如下:

# True

# True

# True

# False

 

在Python中,布尔类型还可以与其他数据类型做and、or和not运算,请看下面的代码: 

a = True

print(a and 'a=T' or 'a=F')

 

# 输出如下:

# a=T

 

计算结果不是布尔类型,而是字符串’a=T’,这是为什么呢?因为Python把0、空字符串和None看成 False,其他数值和非空字符串都看成True,所以前半部分,True and 'a=T' 计算结果是 'a=T',然后继续计算'a=T' or 'a=F',得到结果还是'a=T'所以最终结果就是a=T。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值