前提・実現したいこと
どうすればエラーが消えますか。
発生している問題・エラーメッセージ
TypeError Traceback (most recent call last) <ipython-input-16-efba91faf9af> in <module> 32 if n%2==0: 33 print(myYusha.getName(),"がパンチ") ---> 34 myYusha_life = myYusha.fight('punch') 35 enemy_life = enemy.fight('ouch') 36 if enemy_life==False: TypeError: fight() missing 1 required positional argument: 'ouch'
該当のソースコード
import random class Chara: def __init__(self,name,power,life=True): self.name = self self.power = power self.life = life def getName(self): return self.name def fight(self,punch,ouch): if self.punch: self.power += 10 if self.ouch: self.power += -10 if self.power <= 0: self.life = False myYusha = Chara('勇者',50) enemy1 = Chara('ショッカー',10) enemy2 = Chara('ジコチュー',10) lastBoss = Chara('ラスボス',30) enemies = [enemy1, enemy2, lastBoss] for enemy in enemies: print(myYusha.getName(),"と",enemy.getName(),"が戦います") while True: n = random.randint(1,10) print(n,end=": ") if n%2==0: print(myYusha.getName(),"がパンチ") myYusha_life = myYusha.fight('punch') enemy_life = enemy.fight('ouch') if enemy_life==False: print(myYusha.getName(),"は倒されました") break elif enemy_life==False: print(enemy.getName(),"は倒されました") break else: print(enemy.getName(),"がパンチ") myYusha_life = myYusha.fight('ouch') enemy_life = enemy.fight('punch') if myYusha_life==False: print(myYusha.getName(),"は倒されました") break elif enemy_life==False: print(enemy.getName(),"は倒されました") break if myYusha_life==False: break
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
言語はなんですか?
Pythonですか?
言語の質問タグをつけて下さい。
回答1件
あなたの回答
tips
プレビュー