python入门操作2

文章来源:一氧化碳中毒   发布时间:2021-10-2 10:23:24   点击数: 2 次
  白癜风注意事项 http://pf.39.net/bdfyy/zjft/150604/4634171.html

类:1-特征术语--属性本质--变量2-行为术语--方法1-实例方法:这个方法跟具体的实例有关:这个方法里面没有涉及到实例属性有的话--实例方法没有的话---静态方法2-静态方法:整个类的所有实例这个方法都一样的本质--函数

#类classPerson:nickNmane=cici#类属性--这个类里所以实例都一样的--共用的#对于实例,有些属性每一个实例是部一样的--实例属性:属于实例def__init__(self,inName,inAge,inWright):#初始化方法--创建实例会自动调用self:谁创建代表谁#print(我执行了)self.name=inNameself.age=inAgeself.weight=inWright#实例方法--实例调用defeat(self):self.weight+=10print("我在吃饭",self.weight)#类方法--类调用的cls是类方法,解释器默认是实例方法

classmethoddeftell(cls):print(我是类方法)#静态方法什么参数都不需要,类里的普通函数

staticmethoddefrun():print(--静态方法--)#创建实例(类名)p1=Person(qiqi,26,)p2=Person(haha,39,)#3-实例属性print(p1.name)p1.eat()#实例调用p2.eat()#2-静态(类属性)--可以实例.属性:类.属性Person.tell()#调用类方法--类来调用p1.tell()#也可以用实例进行调用p1.run()

继承:1-如果子类没有__init__方法,会自动调用父类的__init__2-在父类的实例属性不够用的时候,子类自己有__init__方法,不会自动调用如果需要集成,手动调用方法重写:的多态的一种体现一个方法在父类和子类有不同的操作什么时候使用重写:父类有一个方法a,但是子类去继承,发现a方法不满足子类为保持整体的一个模式,会重写这个方法,适合子类多态:一种方法在子类,父类里有不同的表现

#老虎类classTiger:nickName=老虎__age=20#私有的,无法被继承#如果这个属性每个实例可以不一样--实例属性def__init__(self,inWeight):self.weight=inWeight#叫--判断该方法是不是与实例有相关--看是否涉及到实例属性defroar(self):print(我是老虎。---WOW---体重减少5斤!)self.weight-=5deffeed(self,food):#不要再函数里写input,使用实例方法里的形参替代iffood==肉:self.weight+=10print(恭喜,喂食正确,体重增加10斤)else:self.weight-=10print(恭喜,喂食错误,体重减少10斤)

#华南虎类,直接继承老虎类classSouTiger(Tiger):#多继承的直接多写类def__init__(self,inWeight,inName):Tiger.__init__(self,inWeight)#调用父类的的inweightself.name=inNames1=SouTiger(,moco)print(s1.nickName,s1.weight,s1.name)

面向对象–需求

动物园里有10个房间,房间号从1到10

每个房间里面可能是体重斤的老虎或者体重斤的羊

游戏开始后,系统随机在10个房间里放入老虎或者羊

然后随机给出房间号,要求游戏者选择敲门还是喂食

如果选择喂食:

喂老虎应该输入“肉”,喂羊应该输入“草”

喂对了,体重增加10斤,喂错了,体重减少10斤

如果选择敲门:

敲房间的门,里面的动物会叫,老虎叫会显示“wow”,羊叫显示“Mie~”,每叫一次,体重减少5斤

游戏者强记每个房间的动物是什么,以便不需要敲门就可以正确喂食

游戏3分钟结束,显示每个房间的动物和它们的体重

实现:

#老虎类classTiger:nickName=老虎__age=20#私有的,无法被继承#如果这个属性每个实例可以不一样--实例属性def__init__(self,inWeight):self.weight=inWeight#叫--判断该方法是不是与实例有相关--看是否涉及到实例属性defroar(self):print(我是老虎。---WOW---体重减少5斤!)self.weight-=5deffeed(self,food):#不要再函数里写input,使用实例方法里的形参替代iffood==肉:self.weight+=10print(恭喜,喂食正确,体重增加10斤)else:self.weight-=10print(恭喜,喂食错误,体重减少10斤)

#羊类classSheep:nickName=羊#如果这个属性每个实例可以不一样--实例属性def__init__(self,inWeight):self.weight=inWeight#叫--判断该方法是不是与实例有相关--看是否涉及到实例属性defroar(self):print(我是羊。---mie---体重减少5斤!)self.weight-=5deffeed(self,food):#不要再函数里写input,使用实例方法里的形参替代iffood==草:self.weight+=10print(恭喜,喂食正确,体重增加10斤)else:self.weight-=10print(恭喜,喂食错误,体重减少10斤)

#房间类

classRoom:#编号、里面的动物def__init__(self,inNum,inAnimal):self.num=inNumself.animal=inAnimal

##创建房间--初始化10个方向实例--fromrandomimportrandintimporttime#没.的都是模块/包strdata=time.time()#开始时间roomList=[]#存房间实例--10foroneinrange(1,11):#1-10ifrandint(0,1)==1:#双闭区间0/1ani=Tiger()else:ani=Sheep()room=Room(one,ani)roomList.append(room)#10个元素,下标0--9

#循环次数不定--靠时间到结束循环--whilewhileTrue:enddata=time.time()#获取当前时间ifenddata-strdata:#打印结果--打印所有的房间--遍历操作--操作列表里的每一个元素foroneinroomList:#one--列表里面的一个元素--房间实例print(f当前房间编号是:{one.num},动物是:{one.animal.nickName},体重是:{one.animal.weight})break

#游戏操作过程roomNum=randint(1,10)#int#取出对应的房间实例--去列表取元素--下标roomObject=roomList[roomNum-1]#提示下用户print(f当前房间编号是:{roomNum})#提示用户是否选择敲门abswer=input(是否需要敲门(y/n))#判断用户的选择ifabswer==y:#这个房间.动物.叫roomObject.animal.roar()#喂食food=input(请投喂食物:肉/草)roomObject.animal.feed(food)预览时标签不可点收录于话题#个上一篇下一篇

转载请注明:http://www.lwblm.com/zdwh/12499.html
  • 上一篇文章:
  • 下一篇文章: 没有了