0

このエラーが発生し続けます

TypeError: unsupported operand type(s) for +: 'int' and 'str'   

私の以下のコードでは:

done = False
while not done:
    if You.Hit_points > 0 and Opponent.Hit_points > 0:
        move = raw_input("Would you like to make a move? (y/n) ")
        if move == "y":
            print "",You.name,"hit ",Opponent.name," by",You.Hit_points," hit points!"
            Opponent.Health = You.Hit_points + You.Skill_points + Opponent.Health

ありがとうございました!

4

2 に答える 2

4

Opponent.HealthYou.Hit_points、およびの少なくとも 1 つがYou.Skill_points文字列であり、少なくともそれらの 1 つが数値 (int) です。文字列と数字を足し合わせようとしています。これらの値をすべて数値にしたい場合は、そうでないものを見つけ出し、それを変更する必要があります。すべての値をキャストすることもできますがint、それは短期的な解決策です。これは、修正しないと発生し続ける問題です。

必要な情報はすべてエラーに含まれています。unsupported operand type(s) for +: 'int' and 'str'

于 2013-05-08T04:01:08.427 に答える
1

Hit_points はおそらく int です。それを文字列に変換します。

 str(You.Hit_points)

編集:

待って、いいえ。読み違えて、ノーレン ロイヤリティは正しいです。これはおそらく十分でしょう:

Opponent.Health=int(You.Hit_points)+int(You.Skill_points)+int(Opponent.Health)

しかし、私は Nolen の推奨に従います。

于 2013-05-08T04:00:58.777 に答える