2. 定义Rectangle类、Circle类均实现自Container接口。 Rectangel类(属性:长,宽double类型)、Circle类(属性:半径,double类型)。 输入格式: 第一行n表示对象个数,对象类型用Rectangle、Circle区分,Rectangle表示长方形对象,后面输入长,宽,输入Circle表示圆对象,后面是输入半径。 输出格式: 分别输出所有容器对象的面积之和、周长之和,结果保留小数点后2位。 输入样例: 在这里给出一组输入。例如: 4 Circle 15.7 Rectangle 23.5 100 Circle 46.8 Rectangle 17.5 200 输出样例: 在这里给出相应的输出。例如: 周长之和:56771.13 面积之和:472290.12
时间: 2023-06-10 20:03:33 浏览: 96
编写一个抽象类Shape
4星 · 用户满意度95%
好的,我已经明白您的要求了。以下是代码:
```python
from math import pi
class Container:
def area(self):
pass
def perimeter(self):
pass
class Rectangle(Container):
def __init__(self, length, width):
self.length = length
self.width = width
def area(self):
return self.length * self.width
def perimeter(self):
return 2 * (self.length + self.width)
class Circle(Container):
def __init__(self, radius):
self.radius = radius
def area(self):
return pi * self.radius ** 2
def perimeter(self):
return 2 * pi * self.radius
n = int(input())
areas = 0
perimeters = 0
for i in range(n):
obj = input().split()
if obj[0] == 'Rectangle':
length = float(obj[1])
width = float(obj[2])
container = Rectangle(length, width)
elif obj[0] == 'Circle':
radius = float(obj[1])
container = Circle(radius)
areas += container.area()
perimeters += container.perimeter()
print("周长之和:%.2f" % perimeters)
print("面积之和:%.2f" % areas)
```
请问还有其它问题需要我回答吗?
阅读全文