一、模拟房产经纪人来管理房屋信息
编写业务实现
家具类:HouseItem
属性:名字 name,占地面积 area
方法:__init__ , __str__
类名:房子类 House
属性:户型 name,总面积:total_area,剩余面积:free_area = total_area,家具名称列表:item_list = []
方法: __init__ , __str__ 方法
添加家具方法
def add_item(self,item): #item 家具对象
判断剩余房屋面积(剩余的总面积)是否大于或等于家具面积
修改房子的剩余面积
修改房子的家具列表(把家具.append()存入到房子的家具列表中)
实现代码如下:
class Item(object):
# 1. 定义__init__方法,添加2个属性,需要2个形参 _type, _area
def __init__(self, _type, _area):
# 1.1 地址 address
self.type = _type
# 1.2 家具面积 area
self.area = _area
# 2. 实现__str__方法
def __str__(self):
# 2.1 返回房子地址、面积、剩余面积信息
return f'家具类型为:{self.type}, 家具面积为:{self.area}'
class House(object):
# 1. 定义__init__方法,添加3个属性,需要3个形参
def __init__(self, _addr, _area, _free_area):
# 1.1 地址 address
self.address = _addr
# 1.2 房子面积 area
self.area = _area
# 1.3 房子剩余面积 free_area,默认为房子的面积
self.free_area = _free_area
# 2. 实现__str__方法
def __str__(self):
# 2.1 返回房子地址、面积、剩余面积信息
return f'房子地址:{self.address}, 房子面积:{self.area}, 房子剩余面积:{self.free_area}'
# 3. 实现add_item方法,提供item参数来添加家具,item是家具对象
def add_item(self, item):
# 3.1 如果 房间的剩余面积 >= 家具的面积,可以容纳家具:
if self.free_area > item.area:
# 3.1.1 打印添加家具的类型和面积
print(f'添加{item.type}成功了,家具占用面积为:{item.area}')
# 3.1.2 剩余面积 减少
self.free_area -= item.area
# 3.2 否则 不能容纳家具:提示家具添加失败
else:
print('家具添加失败')
h = House('兴东地铁站', 70, 70) # 创建房间对象h
print(h) # 打印房子对象,获取House中__str__返回的信息
tv = Item('超大电视', 10) # 创建家具1
print(tv) # 打印家具对象,输出Item中__str__返回的信息
h.add_item(tv) # 房子添加家具
print(h) # 打印房子对象,获取House中__str__返回的信息
bed = Item('超大床', 20) # 创建家具2
print(bed) # 打印家具对象,输出Item中__str__返回的信息
h.add_item(bed) # 房子添加家具
print(h)
运行结果:
二、定义一个 Dog 类
定义一个 Dog 类, 定义一个类属性 count,用来记录创建该类对象的个数. (即每创建一个对象,count 的值就要加1)实例属性 name
实现代码如下:
class Dog:
count = 0
def __init__(self, name):
self.name = name # 实例属性
Dog.count += 1
print(Dog.count)
dog1 = Dog('小花')
print(Dog.count)
dog2 = Dog
dog3 = dog1
print(Dog.count)
dog4 = Dog('团团')
print(Dog.count)
print(dog1.count)
print(dog4.count)
运行结果:
三、定义一个游戏类
定义一个游戏类 Game , 包含实例属性 玩家名字(name)
- 要求记录游戏的最高分(top_score 类属性),
- 定义方法: show_help 显示游戏的帮助信息 输出这是游戏的帮助信息
- 定义方法: show_top_score, 打印输出游戏的最高分
- 定义方法: start_game, 开始游戏, 规则如下
- 使用随机数获取本次游戏得分 范围 (10 - 100 )之间
- 判断本次得分和最高分之间的关系
- 如果本次得分比最高分高,
- 修改最高分
- 如果分数小于等于最高分,则不操作
- 如果本次得分比最高分高,
- 输出本次游戏得分
- 主程序步骤
- # 1) 创建一个 Game 对象 小王
- # 2) 小王玩一次游戏,
- # 3) 查看历史最高分
- # 4) 小王再玩一次游戏
- # 5) 查看历史最高分
- # 6) 查看游戏的帮助信息
实现代码如下:
import random
class Game:
top_score = 0
def __init__(self, name):
self.name = name
def show_help(self):
print('这是游戏的帮助信息')
def show_top_score(self):
print(f'游戏的最高分:{Game.top_score}')
def start_game(self):
print(f'{self.name} 开始一局游戏', end='')
score = random.randint(10, 100) # 本次游戏的得分
print(f'本次游戏得分{score}')
if score > Game.top_score:
Game.top_score = score # 修改最高分
else:
pass
xw = Game('小王')
xw.start_game()
xw.show_top_score()
xw.start_game()
xw.show_top_score()
运行结果:
四、领养电子宠物
- 实现领养电子宠物功能
- 编写宠物类Dog(狗类)和Penguin(企鹅类)
- 创建宠物对象,输入领养的宠物信息并输出
实现代码如下:
class Pet:
def __init__(self, name,animal_type,varieties):
self.__name = name
self.__animal_type = animal_type
self.__varieties = varieties
def set_name(self,name):
self.__name = name
def set_animal_type(self,animal_type):
self.__animal_type = animal_type
def set_varieties(self,varieties):
self.__varieties = varieties
def get_name(self):
return self.__name
def get_varieties(self):
return self.__varieties
def get_animal_type(self):
return self.__animal_type
def main():
print('欢迎您来到宠物店! ')
pet_name = input('请输入要领养宠物的名字: ')
pet_type = int(input('请选择要领养宠物的类型:(1、狗狗 2、企鹅)'))
if pet_type == 1:
print('狗狗')
pet_varieties = int(input('请选择狗狗的品种:(1、聪明的拉布拉多犬 2、酷酷的雪娜瑞)'))
if pet_varieties ==1:
pet_specs = Pet(pet_name, pet_type, pet_varieties)
print('宠物的自白: ')
print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '我是一只聪明的拉布拉多犬')
else:
pet_specs = Pet(pet_name, pet_type, pet_varieties)
print('宠物的自白: ')
print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '我是一只酷酷的雪娜瑞')
else:
print('企鹅')
pet_varieties = int(input('请选择企鹅的性别:(1、Q仔 2、Q妹)'))
if pet_varieties ==1:
pet_specs = Pet(pet_name, pet_type, pet_varieties)
print('宠物的自白: ')
print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '性别是Q仔')
else:
pet_specs = Pet(pet_name, pet_type, pet_varieties)
print('宠物的自白: ')
print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '性别是Q妹')
main()
运行结果:
五、优化电子宠物系统
新建一个基类:Pet(宠物类),实现用Dog和Penguin继承Pet类
- 优化电子宠物系统
- 打印宠物信息
- 使用继承实现Dog类和Penguin类
实现代码如下:
class Pet:
def __init__(self, name,animal_type,varieties):
self.__name = name
self.__animal_type = animal_type
self.__varieties = varieties
def set_name(self,name):
self.__name = name
def set_animal_type(self,animal_type):
self.__animal_type = animal_type
def set_varieties(self,varieties):
self.__varieties = varieties
def get_name(self):
return self.__name
def get_varieties(self):
return self.__varieties
def get_animal_tpe(self):
return self.__animal_type
def main():
pet_name = input('请输入要领养宠物的名字: ')
pet_type = int(input('请选择要领养宠物的类型:(1、狗狗 2、企鹅)'))
if pet_type == 1:
print('狗狗')
pet_varieties = int(input('请选择狗狗的品种:(1、聪明的拉布拉多犬 2、酷酷的雪娜瑞)'))
if pet_varieties ==1:
pet_specs = Pet(pet_name, pet_type, pet_varieties)
print('宠物的自白: ')
print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '我是一只聪明的拉布拉多犬')
else:
pet_specs = Pet(pet_name, pet_type, pet_varieties)
print('宠物的自白: ')
print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '我是一只酷酷的雪娜瑞')
else:
print('企鹅')
pet_varieties = int(input('请选择企鹅的性别:(1、Q仔 2、Q妹)'))
if pet_varieties ==1:
pet_specs = Pet(pet_name, pet_type, pet_varieties)
print('宠物的自白: ')
print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '性别是Q仔')
else:
pet_specs = Pet(pet_name, pet_type, pet_varieties)
print('宠物的自白: ')
print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '性别是Q妹')
main()
运行结果:
六、使用多态实现主人给宠物喂食
- 使用多态实现喂养宠物功能
- 增加宠物猫并喂食,其健康值增加4(给猫喂食一次,健康值+4)
实现代码如下:
class Pet:
def __init__(self, name,animal_type,varieties):
self.__name = name
self.__animal_type = animal_type
self.__varieties = varieties
def set_name(self,name):
self.__name = name
def set_animal_type(self,animal_type):
self.__animal_type = animal_type
def set_varieties(self,varieties):
self.__varieties = varieties
def get_name(self):
return self.__name
def get_varieties(self):
return self.__varieties
def get_animal_type(self):
return self.__animal_type
def main():
print('欢迎您来到宠物店! ')
pet_name = input('请输入要领养宠物的名字: ')
pet_type = int(input('请选择要领养宠物的类型:(1、狗狗 2、企鹅 3、猫猫)'))
if pet_type == 1:
print('狗狗')
pet_varieties = int(input('请选择狗狗的品种:(1、聪明的拉布拉多犬 2、酷酷的雪娜瑞)'))
if pet_varieties ==1:
pet_specs = Pet(pet_name, pet_type, pet_varieties)
print('宠物的自白: ')
print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '我是一只聪明的拉布拉多犬')
else:
pet_specs = Pet(pet_name, pet_type, pet_varieties)
print('宠物的自白: ')
print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '我是一只酷酷的雪娜瑞')
elif pet_type == 2:
print('企鹅')
pet_varieties = int(input('请选择企鹅的性别:(1、Q仔 2、Q妹)'))
if pet_varieties ==1:
pet_specs = Pet(pet_name, pet_type, pet_varieties)
print('宠物的自白: ')
print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '性别是Q仔')
else:
pet_specs = Pet(pet_name, pet_type, pet_varieties)
print('宠物的自白: ')
print('我的名字叫 ', pet_specs.get_name(), '健康值是100', '和主人的亲密度是0', '性别是Q妹')
else:
print('猫猫')
cat_varieties = int(input('请选择猫猫的性别:(1、公猫 2、母猫)'))
cat_specs = Pet(pet_name, pet_type, cat_varieties)
print('宠物的自白: ')
print('我的名字叫 ', cat_specs.get_name(), '健康值是100', '和主人的亲密度是0', '我是一只菊花猫')
test1 = str(input('是否给猫喂食?'))
jkzhi = 100
if test1 == '是':
jkzhi =jkzhi+4
print(jkzhi)
else:
print(jkzhi)
main()
运行结果: