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()
浙公网安备 33010602011771号