python输入三角形三条边的长度a、b、c,判断它们分别能构成什么形状的三角形

输入三角形三条边的长度a、b、c,判断它们分别能构成什么形状的三角形:普通三角形、等边三角形、等腰三角形、等腰直角三角形。

(提示:判断两个浮点数a、b相等,可以使用fabs(a-b)<0.001 )

输入

三条边的长度

输出

三角形类型的名称;如果不能构成三角形,就输出"非三角形"


a=int(input("请输入三角形A边:"))
b=int(input("请输入三角形B边:"))
c=int(input("请输入三角形C边:"))
if a>0 and b>0 and c>0 and a+b>c and a+c>b and b+c>a:
    print("能构成三角形")
    if a==b and b==c:
       print("是等边三角形")
    elif(a==b or a==c or b==c):
       print("是等腰三角形")
    elif (a*a+b*b==c*c) or (a*a+b*b==c*c) or (a*a+b*b==c*c):
       print("是直角三角形!")
    else:
       print("其他三角形")
else:
    print("非三角形")

根据提示来看,应该输入的有可能是小数,所以干脆统一按照浮点数来处理。
先把输入的三个数排序,这样在比较的时候只需要比较两条短边就可以了,节省代码。

a, b, c = sorted(map(float, input().split()))
if a + b > c:
    if abs(a-b) < 0.001:
        if abs(a**2+b**2-c**2) < 0.001:
            print("等腰直角三角形")
        elif abs(a-c) < 0.001 and abs(b-c) < 0.001:
            print("等边三角形")
        else:
            print("等腰三角形")
    else:
        print("普通三角形")
else:
    print("非三角形")