python 简单模拟组装操作

记录一下python 的学习教程 :建立 room_with_furniture.py这个脚本

创建 家具和房子两个类,模拟向房子中摆放家具

class HouseItem:
    """
    家具类
    """
    # 初始化方法:简化对象的创建
    def __init__(self, name, area):
        """
        初始化家具对象
        :param name: 家具名称
        :param area: 家具占地面积
        """
        # self.属性 = 形参
        self.name = name
        self.area = area

    # 内置方法__str__(self):简化对象的输出
    def __str__(self):
        """
        定义家具对象的字符串表示
        :return: 家具的字符串信息
        """
        # 这个方法需要注意必须要返回一个字符串
        # .2f 表示在遇到小数的时候只保留2位小数
        return "[%s] 占地面积是%.2f 平方米" % (self.name, self.area)


class House():
    """
    房子类
    """
    def __init__(self, house_type, area):
        """
        初始化房子对象
        :param house_type: 房子类型
        :param area: 房子总面积
        """
        self.house_type = house_type
        self.area = area

        # 剩余面积
        self.free_area = area  # 剩余面积初始值是总面积

        # 家具名称列表
        self.item_list = []  # 家具列表一开始是一个空列表

    def __str__(self):
        """
        定义房子对象的字符串表示
        :return: 房子的字符串信息
        """
        # python小技巧: Python能够自动的将一对括号内部的代码连接在一起不出错,因为代码过程所以这里用了小括号
        return ("户型:%s\n总面积:%.2f [剩余面积:%.2f]\n家具:%s"
                % (self.house_type, self.area,
                   self.free_area, self.item_list))

    # 添加家具方法
    def add_item(self, item:HouseItem):
        """
        向房子中添加家具
        :param item: 家具对象
        """
        print("要添加%s" % item)

        # 1.判断家具的面积

        if item.area > self.free_area:
            print("%s 的面积太大了,无法添加" % item.name)

            return  # return关键字可以返回结果也可以不返回结果,下方代码不会被执行

        # 2. 将家具添加到家具列表中
        self.item_list.append(item.name)

        # 3. 计算剩余面积
        self.free_area -= item.area

if __name__ == '__main__':
    # 1. 创建家具对象
    bed = HouseItem("席梦思", 4)
    chest = HouseItem("衣柜", 2.5)
    table = HouseItem("餐桌", 2)
    print(bed)
    print(chest)
    print(table)
    # 创建一个户型为'两室一厅',面积为60平方米的房屋实例
    house = House("两室一厅", 60)
    # 向房屋中添加家具
    house.add_item(bed)
    house.add_item(chest)
    house.add_item(table)
    # 打印房屋信息、家具列表以及剩余可用面积
    print(house)
    print(house.item_list)
    print(house.free_area)
    
    



运行结果如下:

[席梦思] 占地面积是4.00 平方米
[衣柜] 占地面积是2.50 平方米
[餐桌] 占地面积是2.00 平方米
要添加[席梦思] 占地面积是4.00 平方米
要添加[衣柜] 占地面积是2.50 平方米
要添加[餐桌] 占地面积是2.00 平方米
户型:两室一厅
总面积:60.00 [剩余面积:51.50]
家具:['席梦思', '衣柜', '餐桌']
['席梦思', '衣柜', '餐桌']
51.5
 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值