2013-05-08 2 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

unsupported operand type(s) for +: 'int' and 'str' 다시 읽기 오류. 진짜 천천히. –

+0

문자열에 숫자를 추가하는 것은 허용되지 않습니다. 모든 숫자 또는 모든 문자열을 만드십시오. –

답변

1

Hit_points는 아마도 int입니다. 문자열로 변환 :

str(You.Hit_points) 

편집 :

대기를, 아니. Misread, Nolen Royalty는 정확합니다. 아마도 충분할 것입니다 :

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

그러나 나는 Nolen의 권고 사항을 따를 것입니다.

+0

그는 상대방의 건강을 계산하려고합니다. 그것은 아마 정수 자체이고, 세 개의 문자열의 연결이 아닙니다. – Cairnarvon

+0

예, 잘못 읽었습니다. 편집 됨. –

4

Opponent.Health, You.Hit_pointsYou.Skill_points 중 하나 이상은 문자열이며 적어도 하나는 숫자 (int)입니다. 문자열과 숫자를 함께 추가하려고합니다. 이 모든 값을 숫자로 나타내려면 어느 값이 아닌지 알아 내서 그 값을 변경해야합니다. 모든 값을 int으로 전송할 수는 있지만 이는 단기적인 해결책입니다. 문제를 해결하지 않으면 계속 올라갈 수 있습니다.

당신이 필요로하는 모든 정보는 오류가 :

관련 문제