import math
def is_valid(num):
if type(num) in {int,float} and num>0:
return True
else:
return False
#是否是三角形
def is_triangle(a, b, c):
if is_valid(a) and is_valid(b) and is_valid(c) and (a+b>c) and (c+b>a) and (a+c>b):
return True
else:
return False
#周长
def get_perimeter(a,b,c):
if is_triangle(a,b,c):
return a+b+c
else:
return -1
#面积
def get_area(a,b,c):
if is_triangle(a,b,c):
p=get_perimeter(a,b,c)/2
area=(p*(p-c)*(p-b)*(p-c))**0.5
return area
else:
return -1
#直角
def is_right_angled_triangle(a,b,c):
if is_triangle(a, b, c):
if math.isclose(a**2+b**2,c**2) or math.isclose(c**2+b**2,a**2) or math.isclose(a**2+c**2,b**2):
return True
else:
return False
#锐角
def is_acute_angled_triangle(a, b, c):
if is_triangle(a, b, c):
if not is_right_angled_triangle(a,b,c):
if a**2+b**2>c**2 or c**2+b**2>a**2 or a**2+c**2>b**2:
return True
else:
return False
else:
return -1
#钝角
def is_obtuse_angled_triangle(a, b, c):
if is_triangle(a, b, c):
if not is_right_angled_triangle(a,b,c):
if a**2+b**2<c**2 or c**2+b**2<a**2 or a**2+c**2<b**2:
return True
else:
return False
else:
return -1
#判断两个三角是否相等
def is_equal_than(a1,b1,c1,a2,b2,c2):
if is_triangle(a1,b1,c1) and is_triangle(a2,b2,c2):
if set((a1,b1,c1))==set((a2,b2,c2)):
return True
else:
return False
else:
return -1
if __name__ == "__main__":
print(is_acute_angled_triangle(0.1 ** 0.5,0.2 ** 0.5,0.3 ** 0.5))