and , or 优先级

对 python 而言

其一,在不加括号时候,and 优先级大于 or
其二,x or y 的值只可能是 x 或 y. x 为真就是 x, x 为假就是 y
第三,x and y 的值只可能是 x 或 y. x 为真就是 y, x 为假就是 x

例一:
对于,1 or 5 and 4: 先算 5 and 4, 5 为真,值为 4. 再算 1 or 4, 1 为真,值为 1
对于,(1 or 5) and 4: 先算 1 or 5, 1 为真,值为 1. 再算 1 and 4, 1 为真,值为 4

例二:
a = "heaven"
b = "hell"
c = True and a or b
print(c)
d = False and a or b
print(d)

输出:
heaven
hell

解析:
表达式从左往右运算,1 和 "heaven" 做 and 的结果是 "heaven",再与 "hell" 做 or 的结果是 "heaven";0 和 "heaven" 做 and 的结果是 0,再与 "hell" 做 or 的结果是 "hell"。

你可能感兴趣的:(and , or 优先级)