题目------------------
代码-------------------------
class Gun :
"""枪类"""
def __init__(self,name,count):
self.name=name
self.count=count
def ztzd(self,zd):
"""装填子弹"""
if self.count>=10 :
print("子弹已满10颗,不能装填子弹")
elif self.count+zd>10:
print(">>已装%d,退回%d"%(
(zd-(self.count+zd-10)),(self.count+zd-10)
))
self.count+=(zd-(self.count+zd-10))
elif zd>10 :
print("不好意思,弹夹最多装10颗子弹")
elif self.count+zd<=10 :
print(">>已装%d"%zd)
self.count+=zd
print("目前子弹数为:%d"%self.count)
def shoot(self):
"""发射子弹"""
if self.count>0 :
print(">>>%s发射子弹"%self.name)
self.count-=1
else:
print("抱歉,没有子弹了")
print("目前子弹数为:%d" % self.count)
class Soldier :
"""士兵类"""
def __init__(self,name):
self.name=name
self.gun=None #属性1没有初始值时可以定义为None,None是一个空对象
def fire(self):
"""士兵开火"""
if self.gun==None :
print("%s没有枪...."%self.name)
return
print("%s士兵开火"%self.name)
self.gun.shoot()
"""主程序"""
"""创建士兵对象,创建枪对象"""
name=input("请输入士兵名字:")
sb=Soldier(name)
nqiang=input("需不需要拿枪(y拿/任意字符不拿):")
if nqiang=="y":
qname=input("请输入枪的类型:")
zzd=int(input("请给%s的%s装子弹(推荐不超过10颗):"%(name,qname)))
h=Gun(qname,zzd)
sb.gun = h # 将枪对象写入士兵属性
""""""
while True:
"""功能表"""
print("****序号********功能******")
print(" 1 开枪 ")
print(" 2 装弹 ")
print(" 3 换枪 ")
xz=input("请选择功能:")
if xz=="1" : #开枪
sb.fire()
elif xz=="2" :#装弹
if sb.gun==None :
print("%s没有枪装不了子弹...."%name)
else:
a = int(input("请告诉我装几颗子弹(推荐不超过10颗):"))
sb.gun.ztzd(a)
elif xz=="3" :#换枪
qname = input("请输入枪的类型:")
zzd = int(input("请给%s的%s装子弹(推荐不超过10颗):" % (name, qname)))
h = Gun(qname, zzd)
sb.gun = h # 将枪对象写入士兵属性
print("换枪成功!")
else :
print("输入有误")
tc=input("是否退出程序(y退出/任意字符继续):")
if tc=="y":
print(">>>>>感谢使用士兵突击小程序【小黄python版】")
break
运行结果---------------------