Python或操作员
问题描述:
所以,我不明白为什么Python没有正确评估该代码:Python或操作员
def makes10(a, b):
if (a or b == 10) or (a + b == 10):
return True
else:
return False
而预期如下解释:
def makes10(a, b):
if a == 10 or b == 10 or (a + b == 10):
return True
else:
return False
他们看起来是一样的我,但显然(a或b == 10)不被解释为(a == 10)或(b == 10)。有人能解释为什么发生这种情况吗?
那么它会来自优先。 ==运算符优先于or运算符。所以你的评价出来是如果一个或(b == 10)或(a + b == 10) –