8-2 计算球体、圆柱体的表面积——python

从球体、圆柱体抽象出一个公共基类Container,类Container内定义两个类变量pi圆周率,total_area总表面积、两个未实现的方法。模拟实现一个容器类层次结构,子类要求实现父类的所有方法,并在主方法进行多态测试。

设计一个类Container,有以下类变量、方法:

PI=3.1415926 类变量
total_area=0 类变量
area():  未实现
__str__():未实现

设计一个子类Sphere,继承Container类,实现以下方法:

__init__():构造方法,参数:半径
area():返回球体表面积
__str__():返回球体名称、球体表面积的描述

设计一个子类Cylinder,继承Container类,实现以下方法:

__init__():构造方法,参数:半径、高
area():返回圆柱体表面积
__str__():返回圆柱体名称、圆柱体表面积的描述

裁判测试程序样例:


/*请在这里填写答案 */ def main(): r=float(input()) sp = Sphere(r) r,h=map(float,input().split()) cy = Cylinder(r,h) print(sp) print(cy) print('Total area = %.2f'%Container.total_area) main()

输入样例:

在这里给出一组输入。例如:

2.56
3.45 15.7

输出样例:

在这里给出相应的输出。例如:

Sphere: area = 82.35
Cylinder: area = 415.11
Total area = 497.47
class Container:
    PI = 3.1415926
    total_area = 0

    def area(self):
        return

    def __str__(self):
        return


class Sphere(Container):
    def __init__(self, r):
        self.r = r
        Container.total_area += self.area()

    def area(self):
        return 4 * super().PI * self.r ** 2

    def __str__(self):
        return f"Sphere: area = {self.area():.2f}"


class Cylinder(Container):
    def __init__(self, r, h):
        self.r = r
        self.h = h
        Container.total_area += self.area()

    def area(self):
        return 2 * super().PI * self.r * self.h + 2 * super().PI * self.r ** 2

    def __str__(self):
        return f"Cylinder: area = {self.area():.2f}"

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值