1. 程式人生 > 其它 >Python學習筆記(二十一)

Python學習筆記(二十一)

擺放傢俱案例

需求

1、房子HOUSE有戶型、總面積和傢俱名稱列表

新房子沒有任何傢俱

2、傢俱HoseItem有名字和佔地面積,其中

席夢思(bed)佔地4平米

衣櫃(chest)佔地2平米

餐桌(table)佔地1.5平米

3、將以上散件傢俱新增到房子中

4、列印房子時,要求輸出:戶型、總面積、剩餘面積、傢俱名稱列表

剩餘面積

1、在建立房子物件時,定義一個剩餘面積的屬性,初始值和總面積相等

2、當呼叫add_item方法,向放假新增傢俱時,讓剩餘面積 -= 傢俱面積

開發順序?

1、傢俱簡單

2、房子要使用到傢俱,被使用的類,應該先開發

方法:

1、建立一個房子類,使用到init和str兩個內建方法

2、準備一個add_item方法準備新增傢俱

3、使用房子類建立一個房子物件

4、讓房子物件呼叫了三次add_item方法,將三件傢俱以實參傳遞到add_item內部

新增傢俱

需求

1、判斷傢俱面積是否超過剩餘面積,如果超過,提示不能新增這件傢俱

2、將傢俱名稱追加到傢俱名稱列表中

3、用房子的剩餘面積-傢俱面積

class HouseItem:

    def __init__(self, name, area):

        self.name = name
        self.area = area

    def __str__(self):

        
return "[%s] 佔地:%.2f" % (self.name, self.area) class House: def __init__(self, house_tpye, area): self.house_type = house_tpye self.area = area self.free_area = area self.item = [] def __str__(self): return ("戶型:%s \n 總面積:%.2f[剩餘面積 %.2f] \n 傢俱列表名稱 %s \n
" % (self.house_type, self.area, self.free_area, self.item)) def add_item(self, item): print("要新增 %s" % item) if item.area > self.free_area: print("%s 面積太大了,無法新增" % item.name) return self.item.append(item.name) self.free_area = self.free_area - item.area bed = HouseItem("席夢思", 4) chest = HouseItem("衣櫃", 2) table = HouseItem("餐桌", 1.5) print(bed) print(chest) print(table) home = House("兩室一廳", 60) print(home) home.add_item(bed) home.add_item(chest) home.add_item(table) print(home)