2016-06-15 1 views
0

내가 파이 게임에서 탁구 게임을 쓰고 있어요하지만 난 그것을 실행하려고하면, 내가 진술이 오류가 :파이썬 : 문자열을 형성하는 동안 변환 모든 인수

TypeError: not all arguments converted during string formatting 

난 아직 파이썬에 새로운 해요 무슨 일이 일어 났는지 이해하지 못합니다. 아래 문제에서 코드 :

def displayScore(player1_score, player2_score): 
    resultSurf = BasicFont.render('Player 1 Score = %s' %(player1_score), True, white) 
    resultRect = resultSurf.get_rect() 
    resultRect.topleft = (125, 25) 
    gameDisplay.blit(resultSurf, resultRect) 

    resultSurf = BasicFont.render('Player 2 Score = %s' %(player2_score), True, white) 
    resultRect = resultSurf.get_rect() 
    resultRect.topleft = (375, 25) 
    gameDisplay.blit(resultSurf, resultRect) 
+0

일반적으로 전체 스택 추적 (소스 파일/lines/functions/expressions) 어디에서 그런 오류가 발생했을 때 문제가 발생했는지, 아마도 질문에 넣기에 좋다. 내가보기에는 포맷 슬롯이 불일치하고 인수가 제공되는 것처럼 보이지만 단순히 스택 추적을하는 것이 좋습니다. 아, player1_score가 문자열이나 숫자입니까? – Dilettant

+2

'player1_score' 또는'player_2score'가 튜플 일 가능성이 있습니까? – TheLazyScripter

+0

''플레이어 1 점수 = % s '% (player1_score)'는 기다리고있는 버그입니다. ** 하나의 ** 값을 전달하거나 괄호를 넣지 않거나 ** 튜플 **을 전달하고 최소한 하나의 쉼표 (% (player1_score))가 있어야합니다. 혼자 괄호로 묶는 것은 튜플을 만들지 않으므로 거기에 넣는 것은 오해의 소지가 있습니다. – spectras

답변

1

당신은 "새로운"때문에 :

를 포맷

하지 문자열 중에 변환 모든 인수 당신은 충분히 또는 너무 많은 변수가 전달되지 않는 것을 나타냅니다 캐릭터 라인 치환 sth()를 명시 적으로 사용하면 텍스트 결과에 실제 점수가 어떤 유형인지 알 수 있으므로 자신의 답변을 얻을 수도 있습니다.

def displayScore(player1_score, player2_score): 
    resultSurf = BasicFont.render('Player 1 Score = %s' % str(player1_score), True, white) 
    resultRect = resultSurf.get_rect() 
    resultRect.topleft = (125, 25) 
    gameDisplay.blit(resultSurf, resultRect) 

    resultSurf = BasicFont.render('Player 2 Score = %s' % str(player2_score), True, white) 
    resultRect = resultSurf.get_rect() 
    resultRect.topleft = (375, 25) 
    gameDisplay.blit(resultSurf, resultRect) 
관련 문제