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

时间:2019-09-04 03:52:26

标签: python python-3.x if-statement comparison boolean-logic

我正在尝试制作一个小程序,如果其中一个整数为10或它们的和为10,则返回True。

我一直在尝试在“或”或“与”之间切换。但是没有运气

#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

1 个答案:

答案 0 :(得分:0)

在python中,是逻辑运算符。

  

如果两个操作数中的任何一个都不为零,则条件为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