Python 问题,class rectangle 15

CompleteclassRectangleCollection,whichhasonelistinstancevariable,rectangles,thatshoul... Complete class RectangleCollection, which has one list instance variable, rectangles, that should initially refer to an empty list. Write a methodadd_rectangle that takes a Rectangle as a parameter and appends it to the rectangles list. Write a method get_same_area_rects that takes a number as a parameter and returns a list of all Rectangles from the rectangles list that have that area.
class Rectangle:
""" A rectangle with a width and height. """

def __init__(self, w, h):
""" (Rectangle, number, number)

Create a new rectangle of width w and height h.

>>> r = Rectangle(1, 2)
>>> r.width
1
>>> r.height
2
"""

self.width = w
self.height = h

def get_area(self):
""" (Rectangle) -> number

Return the area of this rectangle.

>>> r = Rectangle(10, 20)
>>> r.get_area()
200
"""

return self.width * self.height

class RectangleCollection:

def __init__(self):
""" (RectangleCollection) -> NoneType

>>> rc = RectangleCollection()
>>> rc.rectangles
[]
"""
展开
 我来答
cydfli
2015-04-03 · TA获得超过406个赞
知道小有建树答主
回答量:273
采纳率:0%
帮助的人:209万
展开全部
class Rectangle(object):
    def __init__(self,w,h):
        self.width=w
        self.height=h
    def get_area(self):
        return self.width*self.height

class RectangleCollection(object):
    def __init__(self):
        self.rectangles=[]
    def add_rectangle(self,rect):
        self.rectangles.append(rect)
    def get_same_area_rects(self,area):
        rects=[]
        for rect in self.rectangles:
            if area==rect.get_area():
                rects.append(rect)
        return rects

if __name__=='__main__':
    rs=RectangleCollection()
    for w,h in [(3,5),(2,4),(10,2),(3,3),(2,6),(3,8),(4,3),(5,4),(12,2),(6,4)]:
        rs.add_rectangle(Rectangle(w,h))
    print 'rectangles information:'
    for index,rect in enumerate(rs.rectangles):
        print 'rectangles[%d]: width=%2d,height=%2d,area=%2d'%\
              (index,rect.width,rect.height,rect.get_area())
    for area in (12,24,20,15):
        print 'rectangles with area %d:'%area
        for index,rect in enumerate(rs.get_same_area_rects(area)):
            print 'rectangles[%d]: width=%2d,height=%2d,area=%2d'%\
                  (index,rect.width,rect.height,rect.get_area())
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式