Python练习

时间:2012-03-04 08:01:12

标签: python

我在“Think Python”中遇到了一个练习,我无法弄清楚如何做到这一点。

练习:1。编写一个名为is_triangle的函数,该函数将三个整数作为参数,并打印“是”或“否”,具体取决于您是否可以使用给定的棒形成三角形长度。

当然:“如果三个长度中的任何一个长度大于其他两个长度的总和,那么就不能形成三角形。否则,你可以3.“

6 个答案:

答案 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"