Python 输入三角形的三个边,判断是否构成三角形

时间:2025-03-15 18:02:11
# 三角形判断,三角形,等边、等腰、直角
#
def triangle(x, y, z):
    equilateral_triangle = f'{x, y, z}构成等边三角形'
    isosceles_triangle = f'{x, y, z}构成等腰三角形'
    right_triangle = f'{x, y, z}构成直角三角形'
    isosceles_triangle2 = f'{x, y, z}构成等腰直角三角形'
    _triangle = f'{x, y, z}构成三角形'
    n = f'{x, y, z}不构成三角形'
    # 直角三角形判断时,会有复合无理数(如3*2**0.5)的存在,故设置一个极小值min1,使得判断直角三角形的式子成立
    min1 = 1e-10
    if x + y > z and x + z > y and y + z > x:
        if x == y == z:
            n = equilateral_triangle
        elif x == y or x == z or z == y:
            n = isosceles_triangle
            if x*x + y*y - z*z < min1 or z*z + y*y - x*x < min1 or x*x + z*z - y*y < min1:
                n = isosceles_triangle2
        elif x*x + y*y - z*z < min1 or z*z + y*y - x*x < min1 or x*x + z*z - y*y < min1:
            n = right_triangle
        else:
            n = _triangle
    return n


x1 = eval(input('输入第1条边:'))
y1 = eval(input('输入第2条边:'))
z1 = eval(input('输入第3条边:'))
print(triangle(x=x1, y=y1, z=z1))