我们在写程序的时候经常会用到或这个位运算符。我就我遇到的一些问题进行一下简单的整理。
| 这个运算符,刚开始我一直以为是一个简单的判断,就是一个或的逻辑判断。然后在用的时候才发现这是一个大坑。
python中有内置的像and,or,not这些逻辑云算符,他可以帮助我们判断True,False。而这些运算符则另有其他的用处。
我这儿提到的 | 运算符是属于二进制的云算符。目前我试验了一下只能用来判断数字类型的。
首先说一下 | 判断的标准。 他会将数字转化为2进制,然后判断两个二进制数字。相同位数的数字有1则为1,没有1则为0
例如:
a 的二进制为 0 1
b 的二进制 为 1 0
所以 a | b 的 二进制为 1 1
所以转化为十进制就是3.
a 的 二进制 为 1 0 1 0
b 的二进制 为 0 1
所以 a | b 的二进制就是 11
还有大家要注意的一种情况就是:
这种情况主要就是因为:
a == 1 的结果为True。
True | 2的结果为False
False == 2的结果为False
所以返回结果为False
所以当我们加上括号之后就会返回True。