为了账号安全,请及时绑定邮箱和手机立即绑定

python中两个range进行布尔运算结果?

python中两个range进行布尔运算结果?

慕雪2273792 2019-09-14 11:39:34
为什么 x=range(10) and range(5,20)print(x)>>>(5,20)x=range(10) or range(5,20)print(x)>>>(1,10)为什么会是这样的结果,我认为and是取交集,or是并集;所有range(10) and range(5,20)  结果应该是(5,10)range(10) or range(5,20) 结果应该是(1,20),错在哪?
查看完整描述

1 回答

已采纳
?
橋本奈奈未

TA贡献436条经验 获得超108个赞

理解错了,python里的布尔运算符and和or就好比像其它语言中的&&和||,布尔运算符是会返回后续表达式的值的,而且其具有短路特性,比如例子中的range(10) and range(5,20)两个表达式均为真,则and运算会返回最后一个表达式的值也就是range(5,20);而range(10) or range(5,20)之所以会返回range(10)是因为range(10)为真,则后续运算不需要进行了【因为只要一个为真or运算就肯定为真,这就是“短路”】,返回第一个表达式即range(10)的值。

查看完整回答
1 反对 回复 2019-09-14
  • 1 回答
  • 0 关注
  • 876 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信