python面向对象:家居放置问题

这篇博客介绍了如何使用Python创建家具类和房子类来管理家具的布局。具体包括定义家具的占地面积和名字,以及房子的户型、总面积和剩余面积。通过`add_item`方法将床、衣柜和餐桌添加到房子中,并输出房子的详细信息,包括户型、总面积、剩余面积以及家具列表和家具的占地情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 需求:

1.房子有户型,总面积和家具名称列表,新房子没有任何的家具

2.家具有名字和占地面积,其中:

床: 占4平米           衣柜: 占2平面              餐桌: 占1.5平米

3.将以上三件家具添加到房子中

4.打印房子时,要求输出:户型,总面积,剩余面积,家具名称列表

分析:

1.由于要将家具放入房子中,所以需要先创建家具类

2.家具类:

(1)属性:名字(name),占地面积(area)

(2)对象:床(bed),衣柜(closet),餐桌(table)

3.房子类:

(1)属性:户型(house_style),总面积(zarea),家具名称列表(namelist) (新房子没有任何的家具,即初始家具名称列表为空列表),剩余面积(farea) (由于打印房子时,要求输出'剩余面积',所以剩余面积为房子的隐含属性)

(2)方法:添加家具(add_item)

class Furniture():

    def __init__(self, name, area):

        self.name = name

        self.area = area

# 1.先建立家具类和房子类
# 2.房子里面的剩余面积初始值设置为总面积
# 3.只要往房子里面添加家具,就令剩余面积等于总面积-家具面积
# 4.创建添加家具的方法和输出房子当前信息的方法

class Home():
    def __init__(self, house_style, zarea):
        self.house_style = house_style
        self.zarea = zarea
        self.namelist = []
        self.farea = self.zarea
    # 5.添加家具的方法里面的形参设置为可变参数 *furniture,再将它转换为列表, 然后再计算剩余面积

    def add_item(self, *furniture):
        self.namelist = list(furniture)
        sum = 0
        for i in self.namelist:
            sum += i.area
        self.farea = self.zarea - sum
    # 6.创建输出信息方法,输出的时候分两步
    # 7.第一步,输出户型,总面积,剩余面积
    # 8.第二部,输出家具列表以及家具的详细信息

    def output(self):
        print("该房子的户型:" + self.house_style + "\n" + "总面积为:" + str(self.zarea) +
              "\n" + "剩余面积:" + str(self.farea))
        print("家具列表为:")
        for i in self.namelist:
            print(i.name + " area:" + str(i.area))

bed = Furniture("bed", 4)
closet = Furniture("closet", 2)
table = Furniture("table", 1.5)

home01 = Home("小", 10)
home01.add_item(bed, closet, table)
home01.output()

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

粉尘伴终生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值