转载请注明作者(独孤尚良dugushangliang)出处:https://blog.csdn.net/dugushangliang/article/details/81557442
'''
理论上,除非a与b都是1,那么下面的代码,
都应该执行if语句。而事实上并不是如此
'''
a,b=0,1
if not a and b:
print('测试')
上述代码,判断的是if (not a)and(b),而不是if not(a and b)这个是作用域的问题。
'''
如果是下面这样,
又是另一番情况了
'''
if not 0 & 0:
print('测试')
&比not优先,&和and有时候还是不同的。
'''
如果是下面这样,
又是另一番情况了
'''
if not 0 and 1 \
and 1 and 0:
print('测试')
所以如果使用if not语句,最好加上一个括号,把not的作用域显性告知。以免非预料的结果。
独孤尚良dugushangliang——著