Python中你不知道的(and,or)和(&,|)的区别
【摘要】
在学习C语言的时候,谈到逻辑运算大家肯定会想到且(&&)、或(||)非( ! ),但是当我们接触到Python时会发现逻辑运算并没有(&&、||)而是(&、|)或者...
在学习C语言的时候,谈到逻辑运算大家肯定会想到且(&&)、或(||)非( ! ),但是当我们接触到Python时会发现逻辑运算并没有(&&、||)而是(&、|)或者是( and、or )。而在Python中(&、|)和(and、or)是一组比较相似的运算符,用在“与/或”上会有一些区别。它们都是用来比较两组变量的,基本格式如下:
a and b
a or b
a & b
a | b
- 1
- 2
- 3
- 4
如果a和b是数值变量:
- &、| 表示位运算:
1 & 2 #输出为0
1 | 2 #输出为3
#1&2,2在二进制中是10,1在二进制中是01,那么10与运算01得到的就是0
#1|2,同理01或运算10得到的二进制数是11,换算为十进制就是 3
以此类推:
4 & 2 & 1 #输出为0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- and、or则依据是否非0来决定输出:
2 and 0 #输出0
1 and 2 #输出2
2 and 1 #输出1
2 or 0 #输出2
2 or 1 #输出2
0 or 1 #输出0
1 or 2 #输出1
4 or 2 or 1 #输出4
2 or 4 or 1 #输出2
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
从以上代码可以得出:
and:判断变量是否为0,如果是0则返回0,如果不是零则输出后一个数.
** or**:有0时返回0,没有0时返回第一个非0数
如果a和b是逻辑变量:
两者用法基本类似:
and和&:表示如果两个条件都满足则返回1,如果有一个条件不成立就返回0
or和 | : 表示如果两个条件同时都不满足则返回0,有一个条件成立就返回1
值得注意的是在DataFrame的切片过程,要注意逻辑变量的使用!
需要求得满足多个逻辑条件的数据时,要使用& 和|,在某些条件下用and/ or会报错:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
文章来源: wlybsy.blog.csdn.net,作者:万里羊,版权归原作者所有,如需转载,请联系作者。
原文链接:wlybsy.blog.csdn.net/article/details/104896855
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)