Python基础笔记——面向对象案例

烤地瓜

规则:
1.地瓜有自己的状态,默认是生的,地瓜可以进行烧烤
2.地瓜有自己烧烤的总时间,由每次烧烤的时间累加得出
3.地瓜烧烤时,需要提供本次烧烤时间
4.地瓜状态随着烧烤时间变化而变化:[0,3)生的,[3,6)半生不熟,[6,8)熟了,>=8糊了
5.输出时显示地瓜的烧烤时间和地瓜状态

# 定义类烧烤类
class Potato():
	# 定义初始值
	def __init__(self):
		# 初始地瓜状态
		self.status = '生的'
		# 初始烧烤时间
		self.total_time = 0
	# 定义烧烤
	def cook(self,time):
		# 该该烧烤时间
		self.total_time+=time
		# 通过烧烤时间判断地瓜状态
		# 如果时间小于3,地瓜状态为生了
		if self.total_time < 3:
			self.status = '生的'
		# 如果时间小于6且大于3,地瓜状态半生不熟
		elif 3<=self.total_time < 6:
			self.status = '半生不熟'
		# 如果时间小于8且大于6,地瓜状态熟了
		elif 6<=self.total_time < 8:
			self.status = '熟了'
		# 如果时间大于8,地瓜状态糊了
		else:
			self.status = '糊了'
	# 输出结果
	def __str__(self):
		return f"地瓜烤了{self.total_time}分钟,地瓜{self.status}"
# 调用函数
potato = Potato()
# 设置烧烤时间
potato.cook(10)
print(potato)
# 结果:地瓜烤了10分钟,地瓜糊了

补充:添加调料

# 定义类烧烤类
class Potato():
    # 定义初始值
    def __init__(self):
        # 初始地瓜状态
        self.status = '生的'
        # 初始烧烤时间
        self.total_time = 0
        # 定义调料空列表
        self.name_list = []
    # 定义烧烤
    def cook(self, time):
        # 该该烧烤时间
        self.total_time += time
        # 通过烧烤时间判断地瓜状态
        # 如果时间小于3,地瓜状态为生了
        if self.total_time < 3:
            self.status = '生的'
        # 如果时间小于6且大于3,地瓜状态半生不熟
        elif 3 <= self.total_time < 6:
            self.status = '半生不熟'
        # 如果时间小于8且大于6,地瓜状态熟了
        elif 6 <= self.total_time < 8:
            self.status = '熟了'
        # 如果时间大于8,地瓜状态糊了
        else:
            self.status = '糊了'
        # 定义添加调料函数
    def __str__(self):
        # 将字符串添加到列表中,组成新的列表
        buf = ','.join(self.name_list)
        # 判断列表中是否含有调料
        if self.name_list:
            return f"地瓜的状态{self.status},烧烤总时间为{self.total_time},添加调料有{buf}"
        else:
            return f"地瓜的状态{self.status},烧烤总时间为{self.total_time},还未添加调料"
    # 定义函数,将添加的调料放入列表中
    def add(self, name):
        self.name_list.append(name)

        # 输出结果
        def __str__(self):
            return f"地瓜烤了{self.total_time}分钟,地瓜{self.status}"
# 调用函数
potato = Potato()
# 设置烧烤时间
potato.cook(10)
# 添加调料
potato.add("辣椒")
print(potato)
# 结果:地瓜的状态糊了,烧烤总时间为10,添加调料有辣椒

存放家具

规则:
1.家具有不同种类,且占地面积不同
2.输出家具信息时,显示家具的类型和家具占用面积不同
3.房子有自己地址和面积
4.房子可以添加家具,如果剩余空间够,显示添加成功,否则添加失败
5.输出房子信息时,显示房子的地址、占地面积、剩余面积

# 由要求可知,需定义两个类(房子、家具)
# 定义家具类
class Furniture(object):
	# 定义初始值
	def __init__(self,name,area):
		# 家具类型
		self.name = name
		# 房间面积
		self.area = area
	def __str__(self):
		return f"家具的类型是{self.name},占地面积{self.area}"
# 定义房子类
class House(object):
	def __init__(self,addreess,area):
		# 定义地址
		self.address = address
		# 定义房子面积
        self.h_area = area
        # 定义空列表,储存家具
        self.furniture_list = []
        # 房子的剩余面积
        self.free_area = area  
       # 定义添加家具
     def add_furniture(self, obj_furniture):
        """添加家具 obj_furniture: 家具类的对象 """
        # 判断房子面积是否足够存放家具
        if self.free_area > obj_furniture.area:
            self.furniture_list.append(obj_furniture)
            # 修改剩余面积
            self.free_area -= obj_furniture.area
            print(f'家具{obj_furniture.name}添加成功')
        else:
            print("添加失败")
    # 设定输出值
	def __str__(self):
        return f'房子的地址为{self.address},占地面积为{self.h_area},剩余面积为{self.free_area}'
# 调用函数,输入家具和面积
bed = Furniture('双人床', 15)
print(bed)	# 家具的类型是双人床,占地面积15
table = Furniture('大衣柜', 25)
print(table)	# 家具的类型是三人床,占地面积25
# 创建一个房子类对象
house = House('广场', 1000)
# 输出添加
house.add_furniture(bed)	# 家具双人床添加成功
house.add_furniture(bed2)	# 家具三人床添加成功
print(house)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值