Python函数any_one_is_sum始终返回True无法返回False的问题排查
问题分析与解决
你的代码之所以永远返回True,核心问题在于那三个嵌套的if判断全是恒成立的无效判断:
- 你定义
sum_c = a + b,然后判断sum_c == a + b,这等价于判断a + b == a + b,不管a、b是什么值,这个条件永远为True - 同理,
sum_b = a + c后判断sum_b == c + a,sum_a = b + c后判断sum_a == b + c,这两个条件也永远是True
所以不管输入什么三个数,这三层嵌套的if都会全部满足,直接执行return True,永远走不到else分支返回False。
你真正需要做的,是判断是否存在某一个数等于另外两个数的和,正确的写法应该直接针对这个逻辑:
def any_one_is_sum(a,b,c): # 判断c是否是a+b,或b是否是a+c,或a是否是b+c return c == a + b or b == a + c or a == b + c
如果想要展开写得更清晰,也可以这样:
def any_one_is_sum(a,b,c): if c == a + b or b == a + c or a == b + c: return True else: return False
内容的提问来源于stack exchange,提问作者JUDYCHAN
相关产品推荐
相关产品推荐

