为什么我的代码返回 True 而不是 False?

Why is my code returning True instead of False?

我正在尝试为它编写一个小程序 return 如果其中一个整数是 10 或者它们的和是 10 则为真。请查看代码。

我一直在尝试在 'or' 或 'and' 之间切换。但是运气不好

#Given 2 ints, a and b, return True if one if them is 10 or if their sum 
#is 10.

def makes10(a, b):
  if a or b == 10:
    return True
  elif a + b == 10:
    return True
  else:
    return False

print(makes10(9,10))
print(makes10(9,9))  #This one is not giving False.
print(makes10(1,9))    

我希望 print(makes10(9,9)) 的输出为 False

在python中,是逻辑运算符。

If any of the two operands are non-zero then condition becomes true.

您的输入值(1、9 和 10)不是零,因此表达式 a or b == 10 始终为真。

根据 Primusa 的建议,在使用逻辑运算符 .

之前,您应该先评估输入是否等于 10
def makes10(a, b):
  if a == 10 or b == 10:
    return True
  elif a + b == 10:
    return True
  else:
    return False