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.Health,并且至少有一个是数字(一个 int)。您正在尝试将字符串和数字相加。如果您打算将所有这些值都设为数字,则需要找出哪个不是数字并进行更改。您可以将所有值转换为,但这是一个短期解决方案,如果您不修复它,这个问题将不断出现。You.Hit_pointsYou.Skill_pointsint

您需要的所有信息都在错误中:unsupported operand type(s) for +: 'int' and 'str'

于 2013-05-08T04:01:08.427 回答
1

Hit_points 可能是一个整数。将其转换为字符串:

 str(You.Hit_points)

编辑:

等等,没有。误读,诺伦皇室是正确的。这可能就足够了:

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

但我会听从 Nolen 的建议。

于 2013-05-08T04:00:58.777 回答