我很困惑何时应该使用布尔运算符和按位运算符
有人可以告诉我何时使用其中一种以及何时使用其中一种会影响我的结果吗?
以下是一些指导原则:
- 布尔运算符通常用于boolean值,但通常使用按位运算符integer values.
- 布尔运算符是短路但按位运算符是not短路。
短路行为在如下表达式中很有用:
if x is not None and x.foo == 42:
# ...
这不能正确地与按位一起使用&
运算符,因为双方总是会被评估,给出AttributeError: 'NoneType' object has no attribute 'foo'
。当你使用布尔值时and
当第一个表达式为 False 时,不计算第二个表达式。相似地or
如果第一个参数为 True,则不计算第二个参数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)