如何调试Python代码以检查数据是否可以形成三角形
代码的目的是找出是否有可能用给定的参数形成一个三角形。理论告诉我们,任意两个边的和应该大于第三个边,根据我的编码,但它没有给出正确的答案 我的任务是返回True,如果参数使其成为可能,则返回False如何调试Python代码以检查数据是否可以形成三角形,python,python-3.x,conditional-statements,cpython,Python,Python 3.x,Conditional Statements,Cpython,代码的目的是找出是否有可能用给定的参数形成一个三角形。理论告诉我们,任意两个边的和应该大于第三个边,根据我的编码,但它没有给出正确的答案 我的任务是返回True,如果参数使其成为可能,则返回False def isItATriangle(a, b, c): if a + b > c or a + c > b or b + c > a: return True else: return False print(isItATria
def isItATriangle(a, b, c):
if a + b > c or a + c > b or b + c > a:
return True
else:
return False
print(isItATriangle(1 , 1, 3))
为什么代码不能正常工作
而不是
if a + b > c or a + c > b or b + c > a:
return True
else:
return False
右主代码显示了这一点
if a + b <= c:
return False
if b + c <= a:
return False
if c + a <= b:
return False
return True
如果a+b要返回true,必须满足所有条件,而不仅仅是其中一个条件。因此,您的代码应该是:
def isItATriangle(a, b, c):
if a + b > c and a + c > b and b + c > a:
return True
else:
return False
print(isItATriangle(1 , 1, 3))
这就是,更改或
的和
。您可以了解有关Python逻辑运算符或的更多信息。更正和简化:
def isItATriangle(a, b, c):
return a + b > c and a + c > b and b + c > a:
print(isItATriangle(1 , 1, 3))
您的或
s应该是和
s。用参数(10,1,1)尝试你的函数。这与你的问题无关(khelwood正确地诊断了这个问题),但我要指出的是,如果某个条件:返回True,否则:返回False,你可以只做返回某个条件(或者bool(某个条件))
如果您确实需要布尔值,但还没有布尔值)。