结论
先说结论,优先级: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