我一直收到此错误
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
谢谢!
答案 0 :(得分:4)
Opponent.Health
,You.Hit_points
和You.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的建议。