57打卡

python面向对象
• 所花时间:3
• 代码行数:372
• 博客容量:1
• 代码如下:

import math

# 三维图形类接口
class Shape3D:
    def perimeter(self):
        pass

    def area(self):
        pass

    def volume(self):
        pass


# 点类
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def display(self):
        print("点的坐标:({}, {})".format(self.x, self.y))


# 圆类
class Circle(Point, Shape3D):
    def __init__(self, x, y, radius):
        super().__init__(x, y)
        self.radius = radius

    def perimeter(self):
        return 2 * math.pi * self.radius

    def area(self):
        return math.pi * self.radius ** 2

    def display(self):
        super().display()
        print("圆的半径:{}".format(self.radius))
        print("圆的周长:{:.2f}".format(self.perimeter()))
        print("圆的面积:{:.2f}".format(self.area()))


# 球类
class Sphere(Circle):
    def volume(self):
        return (4 / 3) * math.pi * self.radius ** 3

    def display(self):
        super().display()
        print("球的体积:{:.2f}".format(self.volume()))


# 圆柱类
class Cylinder(Circle):
    def __init__(self, x, y, radius, height):
        super().__init__(x, y, radius)
        self.height = height

    def volume(self):
        return math.pi * self.radius ** 2 * self.height

    def display(self):
        super().display()
        print("圆柱的高:{}".format(self.height))
        print("圆柱的体积:{:.2f}".format(self.volume()))


# 圆锥类
class Cone(Circle):
    def __init__(self, x, y, radius, height):
        super().__init__(x, y, radius)
        self.height = height

    def volume(self):
        return (1 / 3) * math.pi * self.radius ** 2 * self.height

    def display(self):
        super().display()
        print("圆锥的高:{}".format(self.height))
        print("圆锥的体积:{:.2f}".format(self.volume()))


def main():
    # 创建对象并测试
    c = Circle(0, 0, 5)
    print("圆的信息:")
    c.display()
    print()

    s = Sphere(0, 0, 5)
    print("球的信息:")
    s.display()
    print()

    cy = Cylinder(0, 0, 5, 10)
    print("圆柱的信息:")
    cy.display()
    print()

    co = Cone(0, 0, 5, 10)
    print("圆锥的信息:")
    co.display()


if __name__ == "__main__":
    main()



posted @ 2024-05-07 14:53  aallofitisst  阅读(9)  评论(0)    收藏  举报