栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python 类的操作和练习

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python 类的操作和练习

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()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/923903.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号