首页 > 其他分享 >喂动物 老虎和羊

喂动物 老虎和羊

时间:2023-07-18 22:23:10浏览次数:28  
标签:__ weight self 老虎 动物 animal ._ def

import random


# 动物类
class Animal:
    def __init__(self, animal_type, weight, cries, food):
        self._animal_type = animal_type
        self._weight = weight
        self._cries = cries
        self._food = food

    def getWeight(self):
        print(f"{self._animal_type}的体重是{self._weight}")
        return self._weight

    def eat(self, food):

        if self._food == food:
            self._weight += 10
        else:
            self._weight -= 10
        print(f"{self._animal_type}吃了{food}后,当前体重为{self._weight}")
        return self._weight

    def cries(self):

        self._weight -= 5
        print(f"{self._animal_type}发出了{self._cries}的叫声,当前体重为{self._weight}")
        return self._weight




# 老虎类
class Tiger(Animal):
    def __init__(self):
        super().__init__("老虎", 200, "wow", "肉")


# 羊类
class Sheep(Animal):
    def __init__(self):
        super().__init__("羊", 100, "mie", "草")


# 房间类
class Room:
    # _animals = []
    def __init__(self):# 不传参数时因为 定义的动物列表是一个常量,后续不需要修改
        # 在Room类 定义的动物列表  在动物类中的 其他函数比如 放入动物们和获得动物们中也可以调用
        self._animals = []
        # 定义一个数组  获得10个房间里的 全部的动物
    def putAnimal(self, animal):# 传入动物参数是因为动物是个变量
        self._animals.append(animal)# 将每个动物都放入动物列表中


    def getAnimals(self):# 在房间类中 定义一个方法获得动物列表
        return self._animals


# 饲养员类
class Zookeeper:
    def __init__(self):
        self._rooms = [] # 实例化一个10 个房间的房子

    def putAnimalInRooms(self):
        for _ in range(10):#  10个房间里都需要放入动物
            num = random.randint(1, 2)# 使用1和2代表随机水的范围
            if num == 1: # 当1时放入 老虎
                animal = Tiger()
            else:# 非1时放入 羊
                animal = Sheep()
            room = Room() # 实例化出来一个房间room
            room.putAnimal(animal)# 将动物放到这个房间
            self._rooms.append(room) # 将实例化的房间放到10个房子中

    def feedAnimals(self):# 定义一个喂动物的动作
        count=0 # 房间号
        for room in self._rooms: # 遍历每个房间
            count += 1 # 房间号
            print(f'第{count}个房间')
            animals = room.getAnimals() # 调用房间类的获得动物方法
            for animal in animals: # 遍历全部的动物
                animal.getWeight() # 获得体重
                animal.cries() # 动物叫
                food = animal._food # 给动物喂食物
                animal.eat(food) # 动物吃食物
                animal.getWeight() # 动物获得体重



zookeeper = Zookeeper() # 实例化饲养员
zookeeper.putAnimalInRooms() # 饲养员将动物放入房间
zookeeper.feedAnimals() #饲养员喂养动物

 

标签:__,weight,self,老虎,动物,animal,._,def
From: https://www.cnblogs.com/haha1988/p/17564285.html

相关文章

  • 喂动物 老虎和羊
    importrandom#动物类classAnimal:def__init__(self,animal_type,weight,cries,food):self._animal_type=animal_typeself._weight=weightself._cries=criesself._food=fooddefgetWeight(self):print(f"{s......
  • 【题解】 [APIO2007] 动物园
    目录题目链接原题描述题目描述输入格式输出格式样例#1样例输入#1样例输出#1样例#2样例输入#2样例输出#2提示题意概括思路历程1.与环相关2.设计状态代码实现题目链接原题描述[APIO2007]动物园题目描述新建的圆形动物园是亚太地区的骄傲。圆形动物园坐落于太平洋的一个......
  • FX110网:TigerWit老虎外汇口碑极差,建议投资者们远离!
    早在2021年,FX110就提醒过大家要远离TigerWit老虎外汇,FX110也陆续收到多位用户反馈,称TigerWit老虎不能出金,客服失联以及强制平仓等异常操作。然而截止到现在仍有不明真相的投资者在TigerWit老虎外汇进行投资,那到底是什么情况呢?事情经过2021年5月以来,陆续收到用户投诉:用户A 在T......
  • 【活动访谈】发力数字基座 推动物联创新—航天科技控股集团AIRIOT4.0平台发布会活动专
     近日,由航天科技控股集团股份有限公司主办的“数字基座智慧物联—AIRIOT4.0平台发布会”在北京圆满落幕。航天三院科技委总工程师王连宝应邀出席本次会议并接受媒体采访,共同参与访谈的还有AIRIOT产品研发创始人、航天科技控股集团股份有限公司智慧物联事业部总经理田淼,两位就......
  • Luogu P2375 [NOI2014] 动物园
    [NOI2014]动物园题目描述近日,园长发现动物园中好吃懒做的动物越来越多了。例如企鹅,只会卖萌向游客要吃的。为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的,园长决定开设算法班,让动物们学习算法。某天,园长给动物们讲解KMP算法。园长:“对于一个字符串\(S\),它......
  • Python“制作”midi音乐“两只老虎”
    从网上找了很多谱子,可惜没有音乐细胞看不太懂,根据自己的理解改了好几遍,还是听不出来“两只老虎”的感觉,于是在标题上加了双引号。这样的话就只能了解本文思路了,算是抛砖引玉吧,重点是Python标准库winsound的Beep()函数可以发出37到32767赫兹之间频率的声音,其第二个参数为发声时长。f......
  • [NOI2014]动物园
    [NOI2014]动物园这题看题目描述就知道一定是跟KMP扯上关系了。首先,如果不考虑长度超过\(\dfrac{1}{2}\)的限制的话,那么就很简单,每次求出一个新的\(ne_i\)时,如下图所示图中红色的表示目前对于前\(i\)个字符来说,最长公共前后缀为红色部分,因为两个红色部分中一定都有前后......
  • 动物园
    动物园这道题的背景有些牵强,其实\(q_i\)完全没有用。首先,如果《饲养指南》中提到的规则在动物园已有的动物中存在,那么这种饲料一定会购买,那么就可以养\(p_i\)位为\(0/1\)都可以。但是如果动物园已有的动物中不存在,那么如果新动物\(p_i=1\)必定是要买新的饲料,那么不符合......
  • 已经996了,动物们不应该两班倒么
       一天工作8小时,一周5天班,是每个程序猿乃至所有上班族的梦想吧!    国家统计局的数据显示,全国企业就业人员周平均工作时间为46小时,比上月增加0.1小时。数据一出,网友就炸了:    这是谁统计的?你站出来我保证不打你。有时要干到晚上十一二点,没有周末、法定节假日不休的请......
  • 软件开发方法动物园
    这里总结了1970年以来的软件开发方法,这些开发方法的某些特质与动物园的某些动物类似哦!,这些开发方法的某些特质与动物园的某些动物类似哦!Waterfall–1970瀑布模型是一种连续的软件开发过程……,它使得开发从需求分析、设计、实施(验证)、集成、整合和维护阶段逐步发......