刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

36.士兵瑞恩
按照需求填空:
1)士兵瑞恩有一把AK47
2)士兵有枪就可以开火
3)枪能够把子弹发射出去,每射击一次,子弹减少一个
4)枪能够装填子弹 --增加子弹的数量
class Gun():
def ① (self,model):
self.model = model self.bullet_count = 0 def add_bullet(self,count):
self.bullet_count += count
def shoot( ② ):
if self.bullet_count <= 0:
​ print('%s没有子弹' %(self.model))
else: self.bullet_count ③ 1
​ print('%s的子弹数量为%s' %( ④ ,self.bullet_count))
class Soldier():
def __init__(self,name):
self.name =name
self.gun = None
def fire(self):
if self.gun == None: print('%s没有枪' %(self.name))
​ else: self.gun.add_bullet(5)
​ ⑤
ak47 = Gun('AK47')
ak47.add_bullet(10)
ak47.shoot()
ruien = Soldier('RE')
ruien.gun = ak47
ruien.fire()

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:


根据题目描述,我们需要实现一个关于枪和士兵的类设计。首先定义了一个Gun类来表示枪,然后定义了一个Soldier类来表示士兵。接下来我们按照题目的描述填充代码。

对于Gun类:

  • __init__ 方法用于初始化枪的属性,包括型号(model)和子弹数量(bullet_count)。根据题目描述,我们可以设置初始的子弹数量为0。所以填入 __init__ 方法,并设置 self.bullet_count = 0
  • add_bullet 方法用于增加枪的子弹数量。题目描述中提到每射击一次子弹数量减少一个,但这里我们暂时不考虑射击时的子弹消耗,所以直接增加子弹数量。因此填入 self.bullet_count += count
  • shoot 方法用于射击并显示当前的子弹数量。如果子弹数量大于0,则减少一个子弹并显示当前子弹数量;如果子弹数量为0,则显示没有子弹的信息。因此填入相应的逻辑代码。其中,③处应为 -= 操作符表示减少子弹数量;④处应填入枪模型的名称和当前子弹数量,即 self.modelself.bullet_countself.gun.modelself.gun.bullet_count 等。

对于Soldier类:

  • __init__ 方法用于初始化士兵的属性,包括姓名(name)和持有的枪(gun)。根据题目描述,士兵瑞恩持有一把AK47枪,所以在实例化Soldier时为其设置枪属性。
  • fire 方法用于触发士兵的射击动作。首先检查士兵是否有枪,如果有则调用枪的 add_bullet 方法增加子弹数量(这里题目描述有误,应为增加子弹而不是射击),然后调用枪的 shoot 方法进行射击。因此填入相应的逻辑代码。⑤处应调用已设置的枪支实例的射击方法,如 self.gun.shoot()ak47.shoot() 等。
创作类型:
原创

本文链接:36.士兵瑞恩按照需求填空:1)士兵瑞恩有一把AK472)士兵有枪就可以开火3)枪能够把子弹发射出去

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share