代码改变世界

python练习:寒冰猴子狐狸,猫狗咬架

2019-12-02 22:52  清风软件测试开发  阅读(356)  评论(0编辑  收藏  举报

python练习:寒冰猴子狐狸,猫狗咬架

一,寒冰猴子狐狸

class Person:
    def __init__(self, na, gen, age, fig):
        self.name = na
        self.gender = gen
        self.age = age
        self.fight =fig

    def grassland(self):
        """注释:草丛战斗,消耗200战斗力"""
        self.fight = self.fight - 200

    def practice(self):
        """注释:自我修炼,增长100战斗力"""
        self.fight = self.fight + 200

    def incest(self):
        """注释:多人游戏,消耗500战斗力"""
        # self.fight = self.fight - 500
        if self.fight > 500:
            self.fight = self.fight - 500
        else:
            # self.fight = '已经挂了!!!'
            return '已经挂了!!!'

    def detail(self):
        """注释:当前对象的详细情况"""
        # temp = "姓名:%s ; 性别:%s ; 年龄:%s ; 战斗力:%s"  % (self.name, self.gender, self.age, self.fight)
        # print(temp)
        if self.fight>500:
            temp = "姓名:%s ; 性别:%s ; 年龄:%s ; 战斗力:%s" % (self.name, self.gender, self.age, self.fight)
        else:
            temp = "姓名:%s ; 性别:%s ; 年龄:%s ; 已经挂了!!!"% (self.name, self.gender, self.age)
        print(temp)


hanbing = Person('寒冰', '', 18, 1000)    # 创建寒冰角色
houzi = Person('猴子', '', 20, 3800)  # 创建猴子角色
huli = Person('狐狸', '', 19, 1500)      # 创建狐狸角色

hanbing.incest() #寒冰参加一次多人游戏
houzi.practice()#猴子自我修炼了一次
huli.grassland() #狐狸参加一次草丛战斗

hanbing.incest() #寒冰参加一次多人游戏
hanbing.incest() #寒冰参加一次多人游戏
houzi.incest()
houzi.incest()
houzi.incest()
houzi.incest()
houzi.incest()
houzi.incest()
huli.incest()
huli.incest()
huli.incest()
huli.incest()
huli.incest()
huli.incest()

#输出当前所有人的详细情况
hanbing.detail()
houzi.detail()
huli.detail()

输出:

姓名:寒冰 ; 性别:女 ; 年龄:18 ; 已经挂了!!!
姓名:猴子 ; 性别:男 ; 年龄:20 ; 战斗力:1000
姓名:狐狸 ; 性别:女 ; 年龄:19 ; 已经挂了!!!

 

二,猫狗咬架

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 猫狗打架思路:
# 首先要有一个动物类
# 动物类包含:属性和方法
# 再实例猫和狗继承动物
# 最后再调用主程序

class Animal():

    def __init__(self,name ,fig):
        self.name = name
        self.fig_0 = fig
        self.fight = fig

    def drink_water(self):
        '''喝水'''
        print('喝水')

    def eatFood(self):
        '''吃东西增加战斗力'''
        pass

    def sleepping(self):
        '''睡觉增加战斗力'''
        pass

    def wag_tail(self):
        '''摇尾巴'''
        print('hello!!!!')

    def bite(self):
        '''打架减少战斗力'''
        pass

    def detail(self, animal):
        if isinstance(animal,Animal):
            if 0 < self.fight < 2000:
                temp = "姓名:%s ;  最终战斗力:%s; 初始战斗力:%s" % (self.name, self.fight, self.fig_0)

            elif self.fight >= 2000 and self.fight > animal.fig_0:
                temp = "姓名:%s ;  最终战斗力:%s ; 恭喜你已经赢了!!!;  初始战斗力:%s" % (self.name, self.fight, self.fig_0)
            else:
                temp = "姓名:%s ;  最终战斗力:%s;  您已经挂了!!!; 初始战斗力:%s" % (self.name,self.fight, self.fig_0)
        else:
            temp = "姓名:%s ;  您不是个动物!!!" % (str(animal))

        print(temp)


class Cat(Animal):
    def __init__(self,name ,fig, description):
        Animal.__init__(self,name ,fig)
        self.description = description

    def cry(self):
        print('喵喵叫')

    def eatFood(self):
        '''吃鱼增加战斗力 100'''
        self.fight = self.fight + 100

    def sleepping(self):
        '''睡觉增加战斗力 100'''
        self.fight = self.fight + 100

    def bite(self):
        '''打架减少战斗力 100'''
        self.fight = self.fight - 100


class Dog(Animal):
    def __init__(self,name ,fig, description):
        Animal.__init__(self,name ,fig)
        self.description = description

    def cry(self):
        print('汪汪叫')

    def eatFood(self):
        '''啃骨头增加战斗力 200'''
        self.fight = self.fight + 200

    def sleepping(self):
        '''睡觉增加战斗力 50'''
        self.fight = self.fight + 50

    def bite(self):
        '''打架减少战斗力 100'''
        self.fight = self.fight - 100

if __name__ == '__main__':
    cat = Cat('小猫咪', 1000, '我是一只可爱的小猫咪!')
    dog = Dog('小狗狗', 1000, '我的名字叫旺财')

    print('猫和狗开始打架了!!!!')
    for i in range(11):
        cat.eatFood()
        cat.sleepping()
        cat.bite()
        dog.bite()
    print('猫和狗已经和好了')
    dog.detail(dog)
    cat.detail(cat)
    cat.detail(1111111)

输出:

猫和狗开始打架了!!!!
猫和狗已经和好了
姓名:小狗狗 ; 最终战斗力:-100; 您已经挂了!!!; 初始战斗力:1000
姓名:小猫咪 ; 最终战斗力:2100 ; 恭喜你已经赢了!!!; 初始战斗力:1000
姓名:1111111 ; 您不是个动物!!!

 

变量内存分析:

fig = 1000
fig_0 = fig
fight = fig

print(id(fig))
print(id(fight))
print(id(fig_0))

print("---------------------------------------------")
fig_0 = fig_0 +1
fight = fight + 2

print(id(fig))
print(id(fight))
print(id(fig_0))

输出:

3062175258384
3062175258384
3062175258384
---------------------------------------------
3062175258384
3062176303440
3062175259088