我对这个错误很困惑

时间:2013-05-08 03:59:02

标签: python

我一直收到此错误

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

谢谢!

2 个答案:

答案 0 :(得分:4)

Opponent.HealthYou.Hit_pointsYou.Skill_points中至少有一个是字符串,其中至少有一个是数字(int)。你正在尝试将字符串和数字加在一起。如果您打算将所有这些值都设为数字,则需要确定哪一个不是数字并进行更改。您可以将所有值转换为int,但这是一个短期解决方案,如果您不修复它,这个问题会不断出现。

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

答案 1 :(得分:1)

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

 str(You.Hit_points)

编辑:

等等,不。误读,Nolen Royalty是正确的。这可能就足够了:

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

但我会遵循Nolen的建议。