if not 语句与 and / & / () 的作用域问题
首先试着运行如下代码
## if not grammar
# not 优先级高于 and ;
def if_not_grammar_1(a,b):
if not a and b:
return "i do love u !"
return "i donot love u"
# not 优先级低于括号 ;
def if_not_grammar_2(a,b):
if not (a and b):
return "i do love u !"
return "i donot love u"
# not 优先级低于 & ;
def if_not_grammar_3(a,b):
if not a & b:
return "i do love u !"
return "i donot love u"
print (if_not_grammar_1(1,0))
print (if_not_grammar_2(1,0))
print (if_not_grammar_3(1,0))
得到如下结果:
i donot love u
i do love u !
i do love u !
总结原因如下:
1、if not 中 not 的优先级高于 and 但是低于 & ;
2、显然 if not 中 not 的优先级低于 (parentheses) .