2013-05-08 3 views
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 

Спасибо!

+11

Прочитайте ошибку снова. Реальный медленный. –

+0

вы добавляете число в строку, не допускается. Либо сделайте все числа или все строки. –

ответ

1

Hit_points - это, вероятно, int. Преобразование в строку:

str(You.Hit_points) 

Edit:

Подождите, нет. Ошибка, Nolen Royalty правильная. Этого, вероятно, будет достаточно:

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

Но я буду следовать рекомендациям Нолена.

+0

Он пытается рассчитать здоровье противника. Это, предположительно, целое число, а не привязка трех строк. – Cairnarvon

+0

Да, я неправильно понял. Ред. –

4

По меньшей мере один из Opponent.Health, You.Hit_points и You.Skill_points - это строка, и по крайней мере, это число (int). Вы пытаетесь добавить строки и числа. Если вы хотите, чтобы все эти значения были цифрами, вам нужно выяснить, какой из них нет, и изменить это. Вы можете применить все значения к int, но это краткосрочное решение, это проблема, которая будет продолжаться, если вы ее не исправите.

Вся необходимая информация находится в сообщении об ошибке: unsupported operand type(s) for +: 'int' and 'str'

Смежные вопросы