结论
先说结论,优先级:not > and > or
过程
比较 or 和 and
>>> True or False and False
True
- 假设 or 的优先级高于 and ,这个公式的结果会是False,因为会先计算(True or False) = True ,再计算(True and False) = False,所以这个假设不成立。
- 从输入结果是True可以看出,and的优先级要高于or,这个公式是先求出(False and False) = False ,
再计算(True or False) = True
比较 and 和 not
>>> True and True and not False
True
>>> not False or True and True
True
- 由上两个公式可以得出not优先级高于and:第一公式先计算(not False) = True ,再计算(True and True and True) = True.
- 这第二个公式先计算(not False) = True , 再计算 (True and True) = True ,接着计算(True or True) = True
短路逻辑运算规则
and 规则
- 公式开关为 and , and 的左侧为 False 时,其结果必定为 False,短路后面的公式不用参与计算。如:
>>> False and True or True and not True or False
False
>>> False and False or not True and False
False
or 规则
- 公式开关为 or , or 的左侧为 True 时,其结果必定为 True ,短路后面的公式不用参与计算。 如:
>>> True or False and True and not False
True
>>> True or True or False and False and not False
True