python面向对象——烤土豆,开枪案例

2023-05-16

烤土豆应用: 示例属性如下:
cookedLevel : 这是数字;0~3表示还是生的,超过3表示半生不熟,超过5表示已 经烤好了,超过8表示已经烤成木炭了!我们的地瓜开始时时生的
cookedString : 这是字符串;描述地瓜的生熟程度 condiments : 这是地瓜的配料列表,比如番茄酱、芥末酱等


示例方法如下:
cook() : 把地瓜烤一段时间 addCondiments() : 给地瓜添加配料 __init__() : 设置默认的属性 __str__() : 让print的结果看起来更好一些

class Potato:
	def __init__(self):
		#烤的等级
		self.cookLevel=0
		#烤的程度
		self.cookString="生的!"
		#佐料
		self.condiments=[]
	def cook(self,time):
		if time<0:
			print("有问题")
		else:
			self.cookLevel+=time
			if self.cookLevel<=3:
				self.cookString="省的!"
			elif self.cookLevel<=5:
				self.cookString="半生不熟!"
			elif self.cookLevel<=8:
				self.cookString="熟了!"
			else:
				self.cookString="烤焦了!"
		def addCondiments(self,condiment):
			self.condiments.append(condiment)
		def __str__(self):
			s="等级: %s,程度:%s"%(selfcookLeval,selfcookstring)
			ss=",佐料:"
	        if len(self.condiments)>0:
	        	
	        	for condiment in condiments:
	        		ss+=condiment+""
	        else:
	        	ss+="无佐料"

			return s+ss
p=Potato()
print(p)

print("烤1分钟")
p.print(2)
print(p)

print("烤4分钟")
p.print(4)
p.addCondiments("孜然")
print(p)

开枪案例:

'''
人
   姓名   血量  枪
   装子弹(弹夹,子弹)
        弹夹.保存(子弹)
    装弹夹(枪,弹夹)
      枪.连接(弹夹)
    拿枪(枪)
       自己的枪=枪
    开枪(敌人)
       枪.射子弹(敌人)
    掉血(杀伤力)
       血量-=杀伤力
枪
   弹夹
   连接(弹夹)
   射子弹(敌人)
       子弹=弹夹.取子弹()
       子弹.伤害敌人(敌人)
弹夹
   总容量
   当前容量
   取子弹()
        当前容量-1
        return 子弹
    保存子弹(子弹)
       当前容量+1
子弹
   杀伤力
   伤害敌人(敌人)
       敌人.掉血(杀伤力)

'''
class Ren:
	def __init__(self,name):
	    self.name=name
	    self.xue=100
	    self.qiang=None
	#安子弹:弹夹 子弹
    def anzidan(self,danjia,zidan):
        danjia.baocunzidan(zidan)
    #安弹夹:枪 弹夹
    def andanjia(self,qiang,danjia):
    	qiang.liandanjia(danjia)
    #拿枪:枪
    def naqiang(self,qiang):
        self.qiang=qiang
    def kaiqiang(self,animy):
    	self.qiang.shezidan(animy)
    def diaoxue(self,shashangli):
    	self.xue-=shashangli

    def __str__(self):
    	s="姓名: %s,血量: %s"%(self.name,self.xue)
    	if self.qiang!=None:
    		s+=",是否有枪:有"
    	else:
    		s+=",是否有枪:无"
        return s

class Qiang:
	def __init__(self):
		self.danjia=None

	def lianjiedanjia(self,danjia):
		self.danjia=danjia
	def shezidan(self,animy):
		if self.danjia.rongliangList>0:
			zidan=self.danjia.chuzidan()
			
			zidan.shanghai(animy)
		else:
			print("没子弹了!快快装弹")
	def __str__(self):
		if self.danjia!=None:
			return "枪有弹夹"
	    else:
	    	return "没有子弹"

class ZiDan:
	def __init__(self,shashangli):
		self.shashangli=shashangli
    def shanghai(self,animy):
    	animy.diaoxue(self.shashangli)
class DanJia:
	def __init__(self,rongliang):
		#弹夹的容量
		self.rongliang=rongliang
		#弹夹的空间
		self.rongliangList=[]
	def baocunzidan(self,zidan):
		if len(self.rongliangList)>=self.rongliang:
		print("弹夹已满")
	    else:
	    	self.rongliangList.append(zidan)
	def chuzidan(self):
		zidan=self.rongliangList[-1]
		self.rongliangList.pop()
		return zidan
	def __str__(self):
		s="当前子弹数量: %s/%s"(len(self.rongliangList),self.rongliang)
        return s
#Begin....................................................
laozhang=Ren("老张")
print(laozhang)

danjia=DanJia(30)
print(danjia)


#给弹夹装5颗子弹
for i in range(5):
    zidan=ZiDan(8)
	laozhang.anzidan(danjia,zidan)
print(danjia)

qiang=Qiang()
print(qiang)

laozhang.andanjia(qiang,danjia)
print(laozhang)
print(qiang)

laozhang.naqiang(qiang)
print(laozhang)

laowang=Ren("老王")
for i in range(5):
	print("老张开枪了")
	laozhang.kaiqiang(laowang)
	print(danjia)
	print(laowang)


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python面向对象——烤土豆,开枪案例 的相关文章

  • 企业微信如何关联小程序?

    我们在日常使用微信时 xff0c 经常会用到小程序功能 xff0c 直接从微信中打开第三方页面 xff0c 很是方便 xff0c 那么自从企业微信与微信打通之后 xff0c 我们该如何将小程序与企业微信联系起来使用呢 xff1f 其实 xf
  • 在 Mac OS X 上安装 TensorFlow

    在 Mac OS X 上安装 TensorFlow 原文地址 xff1a https www cnblogs com tensorflownews p 7298646 html 这个文档说明了如何在 Mac OS X 上安装 TensorF
  • linux /centos 中OpenSSL升级方法详解

    OpenSSL升级前段时间出现天大bug了 xff0c 这样导致大家都急着去升级OpenSSL来初安全了 xff0c 但是很多的朋友在家linux并不知道如何去升级OpenSSL了 xff0c 下面我整理了一文章大家一起参考一下 相关软件下
  • 【字符验证】java el正则表达式使用

    支持 xff1a 中文 英文 下划线 xff0c 单独或三者合一 xff1a String regex 61 34 u4E00 u9FA5A Za z0 9 43 34 if 34 Adsf 最大的 34 matches regex Sys
  • synchronized原理

    一 synchronized简介 1 java中的关键字 xff0c 在JVM层面上围绕着内部锁 intrinsic lock 或者监管锁 xff08 Monitor Lock xff09 的实体建立的 xff0c Java利用锁机制实现线
  • 11-JUC中的Condition对象

    文章目录 ConditionCondition常用方法总结参考 Condition 任何一个java对象都天然继承于Object类 xff0c 在线程间实现通信的往往会应用到Object的几个方法 xff0c 比如wait wait lon
  • 使用微软New Bing Chat GPT-4生成AI图像的技巧

    在聊天的创意模式中 xff0c 你现在可以要求Bing为你创建一个全新的图像 xff0c 只用你的话语 只需说 34 为我创建一个图像 34 或 34 为我绘制一个图像 34 xff0c 最后准确地说出你要找的东西 当你的描述性更强时 xf
  • 空间权重矩阵

    空间权重矩阵 前言一 空间权重矩阵是什么 xff1f 二 构建模型1 方法1 基于邻接关系构建2 基于距离构建3 复合型 三 总结 前言 随着学习的深入 xff0c 特别是在做空间统计分析的时候 xff0c 空间权重矩阵越来越频繁的出现在我
  • 时间序列模型——AR、MA、ARMA、ARIMA

    这里写目录标题 时间序列模型自回归模型差分与非平稳序列差分检验不平稳 移动平均模型移动平均法MA模型 ARMA模型ARIMA建模方法 时间序列模型 常用的时间序列模型有四种 xff1a 自回归模型 AR p 移动平均模型 MA q 自回归移
  • spring ioc容器中某个Class的bean对象是否只有一个,是否就是单例的[spring总结]

    package com xxx product web 64 program product 64 description 64 create 2021 05 12 17 28 public interface OrderService b
  • 记ftpClient.storeFile(name,inputStream)被挂起,一直没有回复226 transfer complete造成阻塞

    最近现场一个问题折磨了我好久 xff0c 问题是这样的 程序使用异步线程从装置上取文件 xff0c 通过http连接从设备上读取流之后保存到ftp服务器上 xff0c 开始都是正常的 xff0c 过了半个多小时线程会堵塞 xff0c 导致所
  • FtpClient.storeFile()函数总是返回false

    今天我在使用FTP上传图片到服务器时 xff0c 使用函数FtpClient storeFile filename inputFile 函数上传 我发现返回值总是false 但是明明图片已经上传成功 后来查阅资料在这之前加上一句话就好了 x
  • Mac 上实现便捷 Python 多版本共存和轻松切换

    1 安装Homebrew span class hljs operator style margin 0px padding 0px span span class hljs string style margin 0px padding
  • RHEL下修改VNC的分辨率

    在使用LINUX下的CAE设计软件时 xff0c 由于系统自带的VNC默认分辨绿为1024 768 xff0c 导致部分地区无法显示 经试验 xff0c 修改如下内容可以调整分辨率 xff1a 1 which vncserver 得到VNC
  • Docker与虚拟机的简介以及比较

    Docker与虚拟机 注意 本人的博客都迁移到本人自己搭建的博客地址 xff0c 通过此处可查看 Docker 什么是Docker Docker是一个集开发 打包 运行应用于一体的开放式平台 Docker可以用来快速交付应用 使用Docke
  • 教你如何拥有好看的CMD界面 如何美化Windows Terminal

    安装Windows Terminal 在Mircosoft Store可以安装 只有6M PowerShell 必备条件 使用 PowerShell xff0c 安装 Posh Git 和 Oh My Posh xff1a Install
  • CentOS 中 VNCServer 安装使用

    xfeff xfeff 参考 xff1a 1 http wiki centos org HowTos VNC Server 2 http www2 starcat ne jp kanocl shumi vnc htm 分割线 在centos
  • 程序员之歌:我是一个程序员

    工作一天 xff0c 来一起唱首歌缓解疲劳吧猿媛们
  • 如何准备校招技术面试+一只小菜鸟的面试之路

    校 招一路走来很幸运 xff0c 从最初的迷茫 xff0c 到偶尔的被否认 xff0c 然后慢慢调整心态 xff0c 有缺憾才能有进步 xff0c 正视的自己不足 xff0c 静下心努力提高 xff0c 勇敢尝试各种面试机会 xff0c 因
  • 9 个很酷的 CMD 命令

    开发者 xff08 KaiFaX xff09 面向全栈工程师的开发者 专注于前端 Java Python Go PHP的技术社区 大家好 xff0c 我是若飞 今天给大家推荐几个很酷的CMD命令 使用得当 xff0c 可以让你事半功倍 ip

随机推荐

  • MariaDB INSERT INTO SELECT 报错

    文章目录 1 错误描述2 原因3 例子参考文献 1 错误描述 MariaDB 10 5 9 在使用 INSERT INTO SELECT 时会报错 xff0c 错误如下 xff1a ERROR 1064 42000 You have an
  • 科班程序员逆袭为渗透测试工程师的坎坷路(第一篇)

    渗透测试工程师 1 什么是渗透测试 渗透测试 xff08 penetration test xff09 事实上并没有一个标准的定义 xff0c 在国外的大部分安全组织达成的统一说法是 xff1a 渗透测试是通过模拟恶意黑客的攻击方法 xff
  • XD基础操作演示

    基础操作演示 1 启动页面 xff0c 页面上展示了几种画板类型 xff0c 根据项目类型选择相应的画板 xff0c 或者自定义画板大小 在XD中是使用一倍图进行设计 xff0c 由于XD是矢量设计软件 xff0c 所以导出 64 2x 6
  • SQL中的注释语句(三种注释)

    一 单行注释 采用 34 34 双减号 进行单行注释 xff0c 注意 xff1a 34 34 与注释内容要用空格隔开才会生效 二 多行注释 采用 进行多行注释 三 xff0c xff08 单行 xff09 注释 在mysql数据库中就可使
  • Python内置库——http.client源码刨析

    看过了http client的文档 xff0c 趁热打铁 xff0c 今天继续研究一下http client的源码 xff08 一 xff09 你会怎么实现 开始之前先让我们回忆一下一个HTTP调用的完整流程 xff1a 看到这张图 xff
  • 端到端 个人理解

    什么是端到端 端到端是根据客户端提出的需求端 xff0c 到满足客户需求端的一个过程 xff0c 这个过程叫做端到端服务 举个栗子 xff1a 客户可以看做市场 xff0c 客户提出的需求可以看做输入端 xff0c 而我们满足客户需求的结果
  • @PathVariable注解的作用

    1 64 PathVariable注解的作用 在SpringMVC中可以使用占位符进行参数绑定 xff0c 地址 list 1 3可以写成 list page limit xff0c 占位符 page 和 limit 对应的值就是1和3 在
  • ssm配置

    web xml lt context param gt lt param name gt log4jConfigLocation lt param name gt lt param value gt classpath log4j prop
  • Ubuntu16.04安装hexo

    在Ubuntu16 04中安装hexo出现一系列的问题 xff0c 总结一下安装hexo的步骤 首先安装noejs xff0c Ubuntu源中的nodejs时旧版本 xff0c 所以需要在安装后更新nodejs span class hl
  • Power Manager之DisplayPowerState.PhotonicModulator

    Android4 4 DisplayPowerState java PhotonicModulator PhotonicModulator是DisplayPowerState的内部类 xff0c private final class xf
  • AB升级之odex文件首次开机处理

    开启AB升级方案的项目 xff0c 因为很多需要升级的镜像都有两份 xff0c 所以存储空间比较浪费 为缓解此问题 xff0c 有个针对odex的优化方案 编译版本会生成两个system镜像 xff1a system img和system
  • 使用PyQt5/PySide2编写一个极简的音乐播放器

    文章目录 一 创建UI界面二 获取网络歌曲三 创建和链接信号槽 疫情肆虐 xff0c 憋在家实在无聊 xff0c 索性写点东西 xff0c 于是就有了这个极极极极极简的音乐播放器 这个极极极简的音乐播放器类似于 阅后即焚 的软件 xff0c
  • linux中最常用的用户、组和权限

    资源分派 xff1a Authentication xff1a 认证 Authorization xff1a 授权 Accouting Audition xff1a 审计 用户user 令牌token identity Linux用户 xf
  • Ansible的playbook

    playbook还是感觉学的不扎实 xff0c 可能得再来一遍才能写出来 xff0c 先占个位置 xff0c 过几天再补充 xff01
  • DNS相关介绍

    1 名字解析介绍和DNS 1 1 背景 当前TCP IP网络中的设备之间进行通信 xff0c 是利用和依赖于IP地址实现的 但数字形式的IP地址是很难记忆的 当网络设备众多 xff0c 想要记住每个设备的IP地址 xff0c 可以说是 不可
  • 关于ubuntu22.04的安装分区时需要注意的情况

    不同于20 04版本 xff0c 可以按照如下安装 如果是ubuntu 22 04 xff0c 则必须安装efi https blog csdn net janeqi1987 article details 106172976 https
  • 系统日志管理

    1 系统日志管理 1 系统日志介绍 将系统和应用发生的事件记录至日志中 xff0c 以助于排错和分析使用 日志记录的内容包括 xff1a 历史事件 xff1a 时间 xff0c 地点 xff0c 人物 xff0c 事件 日志级别 xff1a
  • python——实现名片管理器

    39 39 39 16 编写程序 xff0c 完成 名片管理器 项目 需要完成的基本功能 xff1a 添加名片 删除名片 修改名片 查询名片 退出系统 程序运行后 xff0c 除非选择退出系统 xff0c 否则重复执行功能 名片 xff1a
  • python——实现五子棋

    39 39 39 五子棋 矩阵做棋盘 16 16 34 43 34 打印棋盘 for for 游戏是否结束 开始下棋 while True 游戏是否结束 xff1a 黑白交替 player 61 0 p 2 61 61 0 61 61 1
  • python面向对象——烤土豆,开枪案例

    烤土豆应用 xff1a 示例属性如下 cookedLevel 这是数字 xff1b 0 3表示还是生的 xff0c 超过3表示半生不熟 xff0c 超过5表示已 经烤好了 xff0c 超过8表示已经烤成木炭了 xff01 我们的地瓜开始时时