if not语句谨防有诈


'''
理论上,除非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的作用域显性告知。以免非预料的结果。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值