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