python: and or 与& | 运算符的区别

本文探讨了Python中逻辑运算符and或or与位运算符&或|的区别。and or适用于逻辑(布尔)变量的运算,而& |则在位运算中发挥作用,尤其在处理布尔数组时。遇到布尔数组的逻辑运算,可以使用numpy的logical_and和logical_or函数。
摘要由CSDN通过智能技术生成

问题引入

在对布尔数组进行布尔运算时,and报错,而&正常。后仔细研究了下,发现是没有理清python中的and or与& | 的区别。

In [37]: a=np.arange(-3,3)
Out[37]: array([-3, -2, -1,  0,  1,  2])

In [38]: a>0
Out[38]: array([False, False, False, False,  True,  True])

In [39]: a<2
Out[39]: array([ True,  True,  True,  True,  True, False])

In [40]: a>0 and a<2
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-40-1d57017acc9c> in <module>
----> 1 a>0 and a<2

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

In [41]: (a>0) & (a<2)
Out[41]: array([False, False, False, False,  True, False])

and or是逻辑运算符

and,or,not是逻辑(布尔)运算符,对逻辑(布尔)变量进行与或非运算。但注意:当变量为数值变量时,也会按某种规则进行运算。
如下:

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值