编写代码实现三角形类,要求初始化时能判断是否能构成三角形编写方法,获得周长,面积编写方法,获得三角形形状

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值