1、人狗大战(组合)

class Person:
def __init__(self,name,hp,aggr,sex,money):
self.name=name
self.hp=hp
self.aggr=aggr
self.sex=sex
self.money=money
def atta(self,dog):
dog.hp-=self.aggr
def get_weapon(self,weapon):
if self.money>=weapon.price:
self.money-=weapon.price
self.weapon=weapon
print("购买成功")
self.aggr+=weapon.aggr
else:
print("金币不足,无法购买")
class Dog:
def __init__(self,name,hp,aggr,kind):
self.name=name
self.hp=hp
self.aggr=aggr
self.kind=kind
def bite(self,person):
person.hp-=self.aggr
class Weapon:
def __init__(self,name,aggr,price,count):
self.name=name
self.aggr=aggr
self.price=price
self.count=count
def dazhao(self,dog):
if self.count>0:
dog.hp-=self.aggr*2
self.count-=1
else:
print("大招使用次数已达上限")
pis=Person("pis",100,10,"male",10000)
naix=Dog("naix",600,100,"ghost")
sj=Weapon("圣剑",300,6200,1)
pis.get_weapon(sj)
print(pis.aggr)
pis.atta(naix)
print(naix.hp)
pis.weapon.dazhao(naix)
print(naix.hp)
pis.weapon.dazhao(naix)

 2、计算环的面积和周长(组合)

#面向对象编程
import math
class Circle:
def __init__(self,r):
self.radius=r
def area(self):
return math.pi*(self.radius**2)
def perimeter(self):
return math.pi*(2*self.radius)
class Ring:
def __init__(self,r1,r2):
self.outside=Circle(r1)
self.inside=Circle(r2)
def area(self):
return self.outside.area()-self.inside.area()
def perimeter(self):
return self.outside.perimeter()+self.inside.perimeter()
ring=Ring(20,10)
print(ring.area())
print(ring.perimeter())

python练习题-day23的更多相关文章

  1. Python练习题 028:求3*3矩阵对角线数字之和

    [Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得 ...

  2. Python练习题 027:对10个数字进行排序

    [Python练习题 027] 对10个数字进行排序 --------------------------------------------- 这题没什么好说的,用 str.split(' ') 获 ...

  3. Python练习题 026:求100以内的素数

    [Python练习题 026] 求100以内的素数. ------------------------------------------------- 奇怪,求解素数的题,之前不是做过了吗?难道是想 ...

  4. Python练习题 025:判断回文数

    [Python练习题 025] 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. ---------------------------------------- ...

  5. Python练习题 024:求位数及逆序打印

    [Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- ...

  6. Python练习题 004:判断某日期是该年的第几天

    [Python练习题 004]输入某年某月某日,判断这一天是这一年的第几天? ---------------------------------------------- 这题竟然写了 28 行代码! ...

  7. Python练习题-1.使用匿名函数对1~1000求和,代码力求简洁。

    Python 练习 标签(空格分隔): Python Python练习题 Python知识点 一.使用匿名函数对1~1000求和,代码力求简洁. 答案: In [1]: from functools ...

  8. PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。

    Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...

  9. python 基础 2.8 python练习题

    python 练习题:   #/usr/bin/python #coding=utf-8 #@Time   :2017/10/26 9:38 #@Auther :liuzhenchuan #@File ...

随机推荐

  1. 洛谷P3348 [ZJOI2016]大森林 [LCT]

    传送门 刷了那么久水题之后终于有一题可以来写写博客了. 但是这题太神仙了我还没完全弄懂-- upd:写完博客之后似乎懂了. 思路 首先很容易想到\(O(n^2\log n)\)乘上\(O(\frac{ ...

  2. STM32F0使用LL库实现MS5536C通讯

    在本次项目中,限于空间要求我们选用了STM32F030F4作为控制芯片.这款MCU不但封装紧凑,而且自带的Flash空间也非常有限,所以我们选择了LL库实现.在本文中我们说明一下,使用LL库实现MS5 ...

  3. 十一.keepalived高可用服务实践部署

    期中集群架构-第十一章-keepalived高可用集群章节======================================================================0 ...

  4. 六.ansible批量管理服务

    期中集群架构-第六章-ansible批量管理服务介绍====================================================================== 01. ...

  5. php判断浏览器还是微信打开

    本人亲测,但是存在一个小问题,就是用此方法在手机端打开会显示Google Chrome,但是在PC端是没有问题的,现在还在测试,先把第一版代码分享给大家! if(strpos($_SERVER['HT ...

  6. day13.装饰器进阶,迭代器

    1.from functools import wraps 这个函数可以保留原来函数的属性 # from functools import wraps def car_time(fun): # @wr ...

  7. jsp页面上的下拉框案例(Struts2)

    <s:select></s:select>包含的属性有:list=""  :name=""  :value=""   ...

  8. web服务-2、四种方法实现并发服务器-多线程,多进程,协程,(单进程-单线程-非堵塞)

    知识点:1.使用多线程,多进程,协程完成web并发服务器 2.单进程-单线程-非堵塞也可以实现并发服务器 1.多进程和协程的代码在下面注释掉的部分,我把三种写在一起了 import socket im ...

  9. HihoCoder1338 A Game (区间DP)

    <题目链接> 题目大意: 两个人轮流从一个序列中取数,他们都面临同样的二选一决策:是拿走最左边的数,还是拿走最右边的数?问先手最多能够得到的分数是多少. 解题分析: 一道比较经典的DP,因 ...

  10. maven与eclipse集成

    https://www.cnblogs.com/teach/p/5906425.html