我在“Think Python”中遇到了一个练习,我无法弄清楚如何做到这一点。
练习:1。编写一个名为is_triangle的函数,该函数将三个整数作为参数,并打印“是”或“否”,具体取决于您是否可以使用给定的棒形成三角形长度。
当然:“如果三个长度中的任何一个长度大于其他两个长度的总和,那么就不能形成三角形。否则,你可以3.“
答案 0 :(得分:12)
def is_triangle(a, b, c):
return a + b + c >= 2 * max(a, b, c) # supposed circumference suffices for largest edge and back.
修改:将>
更改为>=
,以符合OP发布的确切要求。感谢你指出这一点,约翰!还添加了评论。
答案 1 :(得分:1)
有很多方法可以做到这一点:
def is_triangle(a, b, c):
if (a > b + c) or (b > a + c) or (c > a + b):
print "No"
else:
print "Yes"
答案 2 :(得分:1)
三角不等式定理指出三角形的任何一边总是短于另外两边的总和。
在上面的代码中,它检查任何一方是否大于或等于其他方面的总和。打印“不可能”。
代码:
>>> def is_triangle(sides):
... for i,l in enumerate(sides):
... if sides[i] > (sides[(i+1)%3] + sides[(i+2)%3]): return False
... return True
...
>>> is_triangle([3,4,5])
True
>>>
答案 3 :(得分:0)
三角形的两边之和必须大于第三边以形成有效三角形 这是代码:
def is_triangle(a,b,c): #take three arguments
if(a+b>c)and(b+c>a)and(a+c>b): #check the conditions
print "Yes"
else:
print "No"
答案 4 :(得分:0)
观察它的一种方法是注意,如果任何一侧大于周边的一半(即,杆长度的总和),则它不能形成三角形。因此,测试每个棒小于perim / 2.此测试不仅适用于3支,而且适用于任何数量的棒> 2
答案 5 :(得分:-1)
试试这个:
def is_triangle(a, b, c):
if((a + b > c) && (a + c > b) && (b + c > a)):
print "Yes"
else:
print "No"