zoukankan      html  css  js  c++  java
  • python之面向对象(老虎与羊)

     1 #定义类
     2 class Tiger:
     3     nickName = '老虎' #静态属性,这个属性是属于整个类的,所有的这类的实例都是一样的
     4     __name = 'xx' #私有的  -- 继承中使用,子类不能使用
     5     #实例属性,属于实例的,有个初始化方法,:__init__
     6     def __init__(self,inweight):  #只要调用构造方法,就会自动调用  __init__ ;self:谁调用就是谁的,自动调用
     7         # print("我执行了",self,inweight)
     8         self.weight = inweight  #对象.属性  self等于任何一个实例
     9         # 实例方法-和实例有关,看这个方法有没有涉及到实例属性:例如老虎叫 ,减5斤,不可能一只老虎叫,所有老虎减5斤
    10     def roar(self):
    11         print('我是老虎,wow,体重减少5斤')
    12         self.weight -=5
    13         # 静态方法:大家都一样
    14     def feed(self,food):
    15         if food == '':
    16             print('喂食正确,体重加10斤')
    17             self.weight += 10
    18         else:
    19             print('喂食错误,体重减10斤')
    20             self.weight -= 10
    21 
    22 class Sheep:
    23     nickName = ''  # 静态属性,这个属性是属于整个类的,所有的这类的实例都是一样的
    24     __name = 'xx'  # 私有的  -- 继承中使用,子类不能使用
    25 
    26     # 实例属性,属于实例的,有个初始化方法,:__init__
    27     def __init__(self, inweight):  # 只要调用构造方法,就会自动调用  __init__ ;self:谁调用就是谁的,自动调用
    28         # print("我执行了",self,inweight)
    29         self.weight = inweight  # 对象.属性  self等于任何一个实例
    30         # 实例方法-和实例有关,看这个方法有没有涉及到实例属性:例如老虎叫 ,减5斤,不可能一只老虎叫,所有老虎减5斤
    31     #叫方法
    32     def roar(self):
    33         print('我是羊,mie,体重减少5斤')
    34         self.weight -= 5
    35         # 静态方法:大家都一样
    36     #喂食方法
    37     def feed(self, food):
    38         if food == '':
    39             print('喂食正确,体重加10斤')
    40             self.weight += 10
    41         else:
    42             print('喂食错误,体重减10斤')
    43             self.weight -= 10
    44 
    45 #对象的组合  :对象里面有对象 :房间  里面有老虎或者羊
    46 class Room:
    47     #属性:编号
    48     def __init__(self,inNum,inAnimal):
    49         self.Num = inNum
    50         self.animal = inAnimal
    51 
    52 
    53 from random import randint
    54 # print(randint(0,2)) #0,1,2  左含右也含
    55 #老虎和羊取得概率都是 50% ,所以设置0,1就行
    56 
    57 #————————房间初始化——————————————————
    58 #定义个变量存房间
    59 roomList = []
    60 for one in range(1,11):
    61     if randint(0, 1) == 1:
    62         ani = Tiger(200)
    63     else:
    64         ani = Sheep(100)
    65     room = Room(one,ani)
    66     roomList.append(room)
    67 #———————————————————————————————————
    68 import time
    69 #开始时间: = time.time()  #单位是s
    70 #当前时间:=time.time()
    71 #开始游戏
    72 startTime = time.time()
    73 while True:
    74     curTime = time.time()
    75 
    76     if curTime-startTime > 60:
    77         #结果输出
    78         for one in roomList: # one是房间实例
    79             print(f'房间编号是{one.Num},动物是{one.animal.nickName},体重是{one.animal.weight}斤')
    80         break
    81     #随机给出一个房间号 1-10
    82     roomNum = randint(1,10) #int 数字
    83     #以随机的房间号取对应的房间实例 有10个,按下标算是  0-9 ,所以要-1
    84     roomObject = roomList[roomNum-1]
    85     #去到房间实例,需要和用户交互 1.敲门
    86     answer = input(f'当前编号是{roomNum}号房间,是否需要敲门(y/n)?:')
    87     #如果敲门
    88     if answer == 'y':
    89         #这个房间.动物.叫
    90         roomObject.animal.roar()
    91     #喂食
    92     food = input(f'请投喂食物肉或者草:')
    93     roomObject.animal.feed(food)
  • 相关阅读:
    团队第二次作业
    重载和多态
    团队第一次作业
    结对编程
    java处理数字字符串每5个数字为一组进行拆分,保留逗号。不足5个的也存为一组。
    POI & easyExcel快速使用
    Access denied for user 'root'@'localhost' (using password: YES) 解决方法
    快速理解 并发,并行,同步,异步
    Spring Tools Suite 安装于基本使用
    Mysql 数据备份与恢复
  • 原文地址:https://www.cnblogs.com/zhaobobo001/p/14423365.html
Copyright © 2011-2022 走看看