Python程序设计作业16:Shape-area_primeter

2019300993-艾碧纯 2022夏-程序设计实训 2022-07-22 23:49:51
import numpy as np


class Shape:
    def __init__(self, name, area, perimeter):
        self.name = name
        self.area = area
        self.perimeter = perimeter

    def cal_area(self):
        return f'{self.area:.2f}'

    def cal_perimeter(self):
        return f'{self.perimeter:.2f}'

    def display(self):
        print(f'{self.name} {self.area:.2f} {self.perimeter:.2f}')


class Rectangle(Shape):
    def __init__(self, name, a, b):
        super().__init__(name, a * b, 2 * (a + b))


class Triangle(Shape):
    def __init__(self, name, a, b, c):
        super().__init__(name, self.triangle_area(a, b, c), a + b + c)

    @staticmethod
    def triangle_area(a, b, c):
        p = 0.5 * (a + b + c)
        return np.sqrt(p * (p - a) * (p - b) * (p - c))


class Circle(Shape):
    def __init__(self, name, r):
        super().__init__(name, 0.5 * np.pi * r ** 2, 2 * np.pi * r)


rec = Rectangle('Rectangle', 1, 2)
tri = Triangle('Triangle', 1, 2, 3)
cir = Circle('Circle', 1)
print(rec, tri, cir)

 

...全文
50 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

34

社区成员

发帖
与我相关
我的任务
社区描述
依托实践实训环节,为同学们更好掌握所需的基本技能,提供一个交流学习的社区。
python安全linux 高校
社区管理员
  • shawn904
  • weixin_44003872
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧