Python 运算符练习 not and or

#操作符练习,求打印的内容
x = True
y = False
z = False

if not x or y:
    print(1)
elif not x or not y and z:
    print(2)
elif not x or y or not y and x:
    print(3)
else:
    print(4)

'''
已知操作符优先级顺序,not > and > or
 a and  b  若a为False 返回a  否则返回b
 a or   b  若a为True 则返回a 否则返回b
 not a     若a为True 返回False 若a为False,则返回True

我们看上面的表达式一个一个来解
    if not x or y
1:not优先级较高,先运算not x  因为x=True 所以 not x =False
2.语句表达式解为: if False or y      y=False    
3.语句表达式解为: if  False or False
4.根据运算符规则, 该语句解为:False
5.所以if not x or y  返回值为False 当前未命中,进入下一个if判断

-----------------------------------
  if not x  or  not y  and x
1.not优先级较高, x = True  y = False    z = False
2.语句表达式解为: if False or True and False
3.语句中有or和and and优先级较高,先执行and运算
4.语句表达式解为: if False or False
6.语句表达式解为:if False
所以该语句不会执行,进入下个语句判断

------------------------------------------------
    elif not x or y or not y and x:
1.not优先级较高,先进行not运算  x = True  y = False    z = False
2.语句表达式解为: elif False or False or True and True
3.语句表达式有 or和and  根据优先级 and先预算
4.语句表达式解为:elif False or False or True
5.语句只有or 从左到右进行计算
6.语句表达式解为:elif False  or True
7.语句表达式解为:elif True
8.语句表达式解为:elif True 
9.语句为True 执行该段语句
-------------------------------------------------------

所以,最终函数打印的内容为:3
'''

 

上一篇:docker部署elasticsearch容器安装ik分词器


下一篇:21Winter\ C语言程序设计第六章