Python中的(& , |)和(and , or)

在Python中(& , |)和(and , or) 是两组比较相似的运算符,相应的表示”与“和”或“,

基本格式:
a & b a | b
a and b a or b

很多小伙伴会萌萌的分不清他们之间的区别。
其实很简单,如果a和b是数值变量,则&和 | 表示位运算,而and 和 or 根据是否非0来决定输出。

# &,|:
1 & 2 #结果为0
1 | 2 #结果为3
#2在二进制里面是10,1在二进制中是01,那么01与运算10得到是0,或运算得到3
# and,or:
# 判断变量是否为0, 是0则为False,非0判断为True,
# and中含0,返回0; 均为非0时,返回后一个值,
2 and 0 # 返回0
2 and 1 # 返回1
1 and 2 # 返回2

# or中, 至少有一个非0时,返回第一个非0,
2 or 0 # 返回2
2 or 1 # 返回2
0 or 1 # 返回1

如果a和b是逻辑变量,则两者用法基本一致

In[1]:(3>0) | (3<1)
Out[1]: True
In[2]:(3>0) and (3<1)
Out[2]: False
In[3]:(3>0) or (3<1)
Out[3]: True
In[4]:(3>0) & (3<1)
Out[4]: False

此外要注意的是当在pandas中DataFrame的切片过程,要注意逻辑变量的使用,
需要求得满足多个逻辑条件的数据时,要使用& 和|,在某些条件下用and/ or会报错。
具体可以参考我之前写的pandas中loc和iloc方法中的第四条(利用loc根据某个条件提取行)

#提取A列大于5且B列小于10
df.loc[(df['A'] > 5) & (df['B'] < 10)]
  • 10
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python,"or"和"|"都是用来进行逻辑或运算的操作符。它们的作用是判断两个条件至少有一个为真时返回True,否则返回False。\[1\]例如,如果我们有两个条件a和b,我们可以使用"or"或"|"来判断它们的逻辑或关系,如下所示: a or b a | b 这两种写法的结果是相同的,都是判断a和b至少有一个为真时返回True。\[3\]在使用这两个操作符时,需要注意的是它们的优先级较低,因此在复杂的表达式可能需要使用括号来明确运算的顺序。\[1\] 另外,需要注意的是,在处理Pandas数据框时,如果要对多个逻辑条件进行判断,应该使用"&"和"|"操作符,而不是"and"和"or"。\[2\]这是因为Pandas数据框的条件判断需要使用位运算符"&"和"|"来进行逐元素的逻辑运算,而不是使用"and"和"or"来进行整体的逻辑判断。\[2\]所以,在使用Pandas数据框进行条件筛选时,应该使用如下的写法: x_data\[(x_data\['s_line'\] > 6) & (x_data\['p_wid'\] > 0)\] 这样可以满足多个逻辑条件的筛选需求。\[2\] #### 引用[.reference_title] - *1* [python ‘|‘(竖线)与‘or’标识符在逻辑布尔运算时的不同(运算优先级)](https://blog.csdn.net/weixin_41102672/article/details/108103735)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Python (&,|)和(and,or)之间的区别](https://blog.csdn.net/weixin_40041218/article/details/80868521)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值