目录
- and 和 or
- &,|,^
- 两边是逻辑变量时
在python中,0,“”,[],(),{},None,False为假值,其余为真值。
and 和 or
and
布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返php回 y 的计算值。or
布尔"或" - 如果 x 是非 0,它返回 x js的计算值,否则它返回 y 的计算值。
其中and
和or
还有以下运算规律:
- and和or返回的是比较的值
- and的优先级大于or
- 多个and的话,如果全为真,则返回最后一个值。如果其中有一个为假,则返回该假值
- 多个or的话,如果有一个为真,则返回第一个真值。 如果全为假,则返回最后一个假值
例子:
11 and 12 and 13 # 13 [] and 3 # [] None and 3 # 没有输出(None) 3 and 5 or 2 # 5 20 or False # 20 (3 < 2) and 5 # False (3 > 2) and 5 or 1 # 5 (3 < 2) and 5 or 1 # 1 1 and 2 and 0 and 4 and False # 0 1 and 2 and True and 4 and 6 # 6 0 or False or '' or 8 or 1 # 8 [] or 0 or '' or None or () # ()
如果有not
,优先级更高:not
>and
>or
x=1 #将x赋值为1
y=0 #将y赋值为0z=0 #将z赋值为0print(x or y and not z) # 1
- 由于优先级是not>and>or,所以首先执行not z(也就是not 0),即 not 0 = not pythonFalse =True =1
- 下一步是轮到了and,那么 y and 1(已知y=0)即 0 and 1,也就是False and True(假与真),我们刚刚谈过and,一假即假,故y and 1 = 0 and 1 = False = 0
- 最后一步按优先级是轮到or,即x or 0(已知x=1),即1 or 0 =True or Flase =True = 1(or即“或”中编程客栈,一真即真)
所以输出结果为 1。
总结: 代码运算过程为:(用数学符号表示优先级)
{ x or [ y and (not z) ] }
&,|,^
如果两边是数值变量时:
&
按位与运算符:参与运算的两个值,如果对应二个二进位都为1,则该位的结果为1,否则为0。|
按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。^
按位异或运算符:当两对应的二进位相异时,结果为1。
例子:
a = 3 & 5 # a = 1 (011 and 101 = 001)
b = 6 ^ 2 # b = 4 (110 xor 010 = 100) c = 4 | 3 # c = 7 (100 or 011 = 111)
两边是逻辑变量时
如果两边是逻辑变量时,则两类的用法基本一致.
例子:(3>0) | (3<1) # True (3>0) or (3<1) # True (3>0)Cgwbxo & (3<1) # False (3>0) and (3<1) # False
到此这篇关于Python 中 and, or, &, |, ^ 的使用的文章就介绍到这了,更多相关Python and, or, &, |, ^ 内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论