一、面向对象相关习题
1. 小明爱跑步
题目要求:小明的体重为120KG,小明每跑一次步体重下降0.5KG,小明每吃一顿饭体重上升1KG。
类的设计如下所示:
class Person:
def __init__(self, name, weight):
self.name = name
self.weight = weight
def __str__(self):
return "[%s]的当前体重是 %.1f KG " % (self.name, self.weight)
def running(self):
print("跑了一次步 !")
self.weight = self.weight - 0.5
def eatting(self):
print("吃了一次饭 !")
self.weight = self.weight + 1
p = Person('小明', 120)
print(p)
p.running()
p.running()
print(p)
p.eatting()
print(p)
2. 计算面积安置家具
具体要求:房子(House) 有 户型、总面积 和 家具名称列表。初始时的新房子没有任何的家具。家具(HouseItem) 有 名字 和 占地面积,其中席梦思(bed) 占地 4 平米、衣柜(chest) 占地 2 平米、餐桌(table) 占地 19.5 平米,将以上三件 家具 添加 到 房子 中。打印房子时,要求输出:户型、总面积、剩余面积、家具名称列表。
类的设计如下所示:
# 家具类
class HouseItem:
def __init__(self, Item_name, Item_area):
self.Item_name = Item_name # 家具名称
self.Item_area = Item_area # 家具占地面积
def __str__(self):
return "[%s] 占地 %.2f 平米" % (self.Item_name, self.Item_area) # 返回家具名称以及该家具的占地面积
# 房子类
class House:
def __init__(self, h_type, h_area):
self.h_type = h_type # 房子类型
self.h_area = h_area # 房子总面积
self.Item_list = [] # 房子中家具的列表
self.free_area = h_area # 初始时房子剩余面积等于总面积
def __str__(self):
print("-"*50)
return ("户型:[%s]\n总面积 %.2f平方米,剩余[%.2f]平米\n已装家具:%s" % (self.h_type, self.h_area, self.free_area, self.Item_list))
# 该方法实现了将家具安装到房子中
def add_Item(self, item):
# 1. 判断家具面积是否大于剩余面积
if item.Item_area > self.free_area:
print("%s 太大了!装不到您的房子内!" % item.Item_name)
return
# 2. 把家具装入家具列表中
self.Item_list.append