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



我正在尝试制作一个小程序,如果其中一个整数为 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))    

我希望打印(makes10(9,9((的输出是假的

在python中,or是一个逻辑运算符。

如果两个操作数中的任何一个不为零,则条件变为 true。

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

正如Primusa所建议的,在使用逻辑运算符or之前,应首先评估输入是否等于10。

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

相关内容

  • 没有找到相关文章

最新更新