练习-搬家具进房子

1. 搬家具规则

家具

  • 家具分不同的类型,并占用不同的面积
  • 输出家具信息时,显示家具的类型和家具占用的面积

房子

  • 房子有自己的地址和占用的面积
  • 房子可以添加家具
    • 如果房子的剩余面积可以容纳家具,提示家具添加成功;
    • 否则提示添加失败
  • 输出房子信息时,可以显示房子的地址、占地面积、剩余面积
  • 查看房子中所有的家具

2. 类的设计

可以提取两个类:家具类Item和房子类House

3. 家具类

 1.使用 Item 类可以创建 家具对象
2.家具有两个属性:
    家具类型 type:字符串
    家具面积 area:整数
3.实现__str__方法
4.显示家具的 type 和 area 属性

4. 房子类

1.使用 House 类可以创建 房子对象
2.房子有四个属性:
    地址 address:字符串
    房子面积 area:整数
    房子剩余面积 free_area:整数,默认为房子的面积
    家具列表 items:列表
3.实现__str__方法
    显示房子的 address 、area、free_area 属性
4.实现add_item方法,提供item参数来添加家具
    如果 可以容纳家具:
        家具 加入 item属性
        剩余面积 减少
    如果 不能容纳家具: 提示家具添加失败

# 创建item类 创建家具对象
class Item:
    # 添加属性
    def __init__(self, type, area):
        # 家具类型
        self.type = type
        # 家具面积
        self.area = area

    # 打印对象属性信息
    def __str__(self):
        return f"家具类型:{self.type} 家具面积:{self.area}"


# 创建House类 创建房子对象
class House:
    # 添加属性
    def __init__(self, address, area):
        # 房子地址
        self.address = address
        # 房子总面子
        self.area = area
        # 房子剩余面积等于房子总面积
        self.free_area = self.area
        # 存放家具列表
        self.items = []

    def __init__(self, name):
        self.name = name

    # 添加家具方法
    def add_item(self, item):
        # 房子剩余面积大于等于家具面积 就可以添加
        if self.free_area >= item.area:
            # 将家具追加到家具列表
            self.items.append(item)
            # 剩余面积减去家具面积
            self.free_area -= item.area
            print("添加成功")
        else:
            print("不能容纳家具,添加失败")

    # 打印对象属性的信息
    def __str__(self):
        return f'地址:{self.address},面积:{self.area},剩余面积:{self.free_area}'


# 创建家具对象
item1 = Item("床", 12)
item2 = Item("桌子", 5)
item3 = Item("衣柜", 1)

# 创建房子对象
house = House("江苏", 20)
# 添加家具到房子
house.add_item(item1)
house.add_item(item2)
house.add_item(item3)
# 打印信息
print(house)

# 查询房子所有的家具
print("家具列表:")
for i in house.items:
    print(f"{i}")

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值