使用python编程语言编写程序:输入a、b、c三个数,判断a、b、c能否构成三角形,如果能够构成三角形,判断该三角形是等腰三角形还是等边三角形,还是直角三角形,还是一般三角形。并计算周长和面积。

​​​代码:

#-是否有效
def is_valid(x):
    if type(x) in {int,float} and x>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 a+c>b and b+c>a:
        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=(a+b+c)/2
        area=(p*(p-a)*(p-b)*(p-c))**0.5
        return area
    else:
        return -1

#判断是否直角三角形


def is_right(a,b,c):
    if is_triangle(a,b,c):
        lst = sorted((a,b,c))
        if abs(lst[0]**2+lst[1]**2-lst[2]**2)<=0.00000001:
            return True
        else:
            return False
    else:
        return -1


#判断是否等腰

def is_iso(a,b,c):
    if is_triangle(a,b,c):
        lst = sorted((a,b,c))
        if lst[0]!=lst[2] and (lst[0]==lst[1] or lst[1]==lst[2]):
            return True
        else:
            return False
    else:
        return -1
#-是否有效
def is_valid(x):
    if type(x) in {int,float} and x>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 a+c>b and b+c>a:
        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=(a+b+c)/2
        area=(p*(p-a)*(p-b)*(p-c))**0.5
        return area
    else:
        return -1

#判断是否直角三角形


def is_right(a,b,c):
    if is_triangle(a,b,c):
        lst = sorted((a,b,c))
        if abs(lst[0]**2+lst[1]**2-lst[2]**2)<=0.00000001:
            return True
        else:
            return False
    else:
        return -1


#判断是否等腰

def is_iso(a,b,c):
    if is_triangle(a,b,c):
        lst = sorted((a,b,c))
        if lst[0]!=lst[2] and (lst[0]==lst[1] or lst[1]==lst[2]):
            return True
        else:
            return False
    else:
        return -1

#   判断是否等边三角形
def is_equ(a,b,c):
    if is_triangle(a,b,c):
        if a==b and b==c and c==a:
            return True
        else:
            return False
    else:
        return -1

def is_l_triangle(a,b,c):
    if is_triangle(a,b,c):
        if not is_right(a,b,c) and not is_equ(a,b,c)and not is_iso(a,b,c):
            return True
        else:
            return False
    return -1

a=float(input('输入第一条边a:'))
b=float(input('输入第二条边b:'))
c=float(input('输入第三条边c:'))
print("是否是三角形:"+str(is_triangle(a,b,c)))
print("周长:"+str(get_perimeter(a,b,c)))
print("面积"+str(get_area(a,b,c)))
print("是否是直角三角形:"+str(is_right(a,b,c)))
print("是否是等腰三角形:"+str(is_iso(a,b,c)))
print("是否是等边三角形:"+str(is_equ(a,b,c)))
print("是否是一般三角形:"+str(is_l_triangle(a,b,c)))

运行截图:

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐