python三角形相关判断

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))

 

posted @ 2022-03-28 11:04  AubeLiang  阅读(371)  评论(1编辑  收藏  举报