1.定义一个汽车类,并在类中定义一个move方法,然后分别创建BMW_X9、AUDI_A9对象,并添加颜色、马力、型号等属性,然后分别打印出属性值、调用move方法(使用__init__方法完成属性赋值)
class Car:
def __init__(self, color, mali, size):
self.color = color
self.mali = mali
self.size = size
def move(self):
print(f"{self.color} {self.mali} {self.size}")
BMW_X9 = Car('red','9000','xs')
BMW_A9 = Car('blue','8000','x')
BMW_X9.move()
BMW_A9.move()
2.小明爱跑步,爱吃东西。小美不爱跑步,爱吃东西。
1)小明体重75.0公斤
2)小美体重45.0公斤
3)每次跑步会减肥0.5公斤
4)每次吃东西体重会增加1公斤
class Sport:
def __init__(self, name, weight):
self.name = name
self.weight = weight
print(f"{self.name}的体重是{self.weight}公斤")
def thin(self,run):
self.weight -= run*0.5
print(f"{self.name}当前的体重是{self.weight}公斤")
def fat(self,eat):
self.weight += eat
print(f"{self.name}当前的体重是{self.weight}公斤")
XiaoMing = Sport("小明",75.0)
XiaoMei = Sport("小美",45.0)
XiaoMing.thin(int(input("小明跑步几次?")))
XiaoMing.fat(int(input("吃了几次?")))
XiaoMei.thin(int(input("小美跑步几次?")))
XiaoMei.fat(int(input("吃了几次?")))
3.
定义:房子(House) 有 户型、总面积 、剩余面积(等于总面积的80%) 和 家具名称列表 属性
定义:家具(Furniture) 有 名字 和 占地面积属性,其中:
双人床(bed) 占地 4 平米
衣柜(chest) 占地 2 平米
餐桌(table) 占地 1.5 平米
新房子没有任何的家具
将以上三件家具添加到房子中,将家具的名称追加到家具名称列表中
判断家具的面积是否超过剩余面积,如果超过,提示不能添加这件家具
打印房子时,要求输出:户型、总面积、剩余面积、家具名称列表
class House:
def __init__(self, type, allsize):
self.type = type
self.allsize = allsize
self.lastsize = self.allsize
self.str = []
print(f"户型为{self.type}、总面积{self.allsize}、剩余面积{self.lastsize}")
def move(self, item):
#没超过最大面积
if self.lastsize-item.size >= 0:
self.str.append(item.name)
self.lastsize -= item.size
print(f"{self.type}有{self.str},还剩下{self.lastsize}空间")
else:
print(f"{item.name}放不下!,还剩下{self.lastsize}空间")
class Furniture:
def __init__(self, name, size):
self.name = name
self.size = size
#房子
house1 = House('客厅',20)
house2 = House('卫生间',5)
#家具
bed = Furniture('bed',4)
chest = Furniture('chest',2)
table = Furniture('table',1.5)
#放不放的下
house1.move(bed)
house1.move(chest)
house1.move(table)
house2.move(bed)
house2.move(chest)
house2.move(table)
4.需求:
1).士兵瑞恩有一把AK47
2).士兵可以开火(士兵开火扣动的是扳机)
3).枪能够发射子弹(把子弹发射出去)
4).枪能够装填子弹 --增加子弹的数量
class Gun:
#model 枪型 bullet子弹数目
def __init__(self, model, allbullet):
self.model = model
#总弹药
self.allbullet = allbullet
#当前弹匣子弹数
self.bullet = 0
#弹匣最大子弹数
self.max_bullet = 30
print(f"总弹药:{self.allbullet} 弹匣剩余子弹:{self.bullet}")
#射击方法
def shoot(self):
if self.bullet > 0:
self.bullet -= 1
print("发射了一枚子弹")
else:
print("装填弹匣!")
print(f"弹匣内剩余{self.bullet}枚子弹")
#装填子弹
def add_bullet(self):
#弹匣未满
if self.bullet < self.max_bullet:
self.allbullet -= 30-self.bullet
self.bullet = self.max_bullet
print(f"弹匣已满,还剩下{self.allbullet}枚子弹")
else:
print(f"弹匣已满,还剩下{self.allbullet}枚子弹")
class Soldier:
def __init__(self, name, gun_name):
self.name = name
self.gun_name = gun_name
#开火,调用枪的方法
def fire(self):
print(f"{self.name}开火!")
self.gun_name.shoot()
#装子弹
def reload(self):
print(f"{self.name}装子弹!")
self.gun_name.add_bullet()
#测试
gun = Gun("AK47",100)
soldier1 = Soldier('SB',gun)
soldier1.reload()
for i in range(4):
soldier1.fire()
soldier1.reload()



