import random
# 定义一个三角形类
class triangular(object):
# 初始化
def __init__(self,side1=3,side2=4,side3=5):
# 判断是否构成三角形
if side1+side2>side3 and side2+side3>side1 and side1+side3>side2:
print(side1,side2,side3,"可以构成三角形!")
else:
print(side1,side2,side3,"不可以构成三角形!")
exit()
# 返回三角形的周长和面积
def perimeter_area(self):
# 利用海伦公式求面积:S=(p(p-a)(p-b)(p-c))^(1/2),p=(1/2)(a+b+c)
p=0.5*(side2+side3+side1)
area=(p*(p-side1)*(p-side2)*(p-side3))**0.5
# 求面积
perimeter=p*2
return (perimeter,area)
# 判断三角形的形状
def shape(self):
# 利用余弦定理 cos(C)=(a^2+b^2-c^2)/2ab,cos值大于0锐角,等于0直角,小于0钝角
cos=(side1**2+side2**2-side3**2)/(2*side1*side2)
if cos<0:
print(side1,side2,side3,"构成钝角三角形!")
elif cos==0:
print(side1, side2, side3, "构成直角三角形!")
elif side1==side2 and side3==side2:
print(side1, side2, side3, "构成等边三角形!")
else:
print(side1, side2, side3, "构成锐角三角形!")
# 随机获得三边的大小
side1=random.randint(1,20)
side2=random.randint(1,20)
side3=random.randint(1,20)
# 创建一个对象t1
t1=triangular(side1,side2,side3)
# 获取类中方法perimeter_area的返回值
perimeter,area=t1.perimeter_area()
# 打印返回值,保留两位小数
print("周长为:",'{:.2f}'.format(perimeter),'\n面积为:','{:.2f}'.format(area))
# 调用triangular类中的shape方法
t1.shape()
编写代码实现三角形类,要求初始化时能判断是否能构成三角形编写方法,获得周长,面积编写方法,获得三角形形状
于 2023-09-22 22:24:06 首次发布