2017-05-13 1 views
-1

두 개의 숫자가 무작위로 생성되고 사용자가 답변을 입력하라는 시간표 테스트 앱을 작성하려고합니다. 문제는 내가 들어 가려고 할 때 변수는 텍스트와 함께 라벨에 표시한다는 것입니다 : 어떤 도움을 주시면 감사하겠습니다Tkinter lable의 텍스트 및 변수

Tkinter GUI/gui.py' && echo Exit status: $? && exit 1 
    File "/Users/teymouraldridge/Desktop/Code/Python/Tkinter GUI/gui.py", line 7 
    lbl = tkinter.Label(window, text="What is",a,"+",b, "?") 
SyntaxError: non-keyword arg after keyword ar 

:

from random import randint 
import Tkinter as tkinter 
window = tkinter.Tk() 
window.title('Times Tables') 
a = randint(1, 12) 
b = randint(1, 12) 
lbl = tkinter.Label(window, text="What is",a,"+",b, "?") 
lbl.pack() 
window.mainloop() 

가 그럼 난이 오류 메시지가 표시됩니다.

+1

사용자가 콘텐츠를 지워 어쨌든 삭제하려고했기 때문에이 질문을 주제와 관련이없는 것으로 보겠습니다. –

답변

2

문제는이 라인 :

lbl = tkinter.Label(window, text="What is",a,"+",b, "?") 

text=라는 이름의 인수가 문자열을 원하지만, 파이썬에 추가 위치 인수의 모양을 다음 문자열 "What is"을 통과시켰다. 쉼표를 사용하여 문자열을 작성할 수 없습니다. 당신은 어려운 방법으로 갈 수 있습니다

lbl = tkinter.Label(window, text="What is " + str(a) + " + " + str(b) + "?") 

을 아니면 Python2 스타일 % 형식 운영자 또는 새로운 파이썬 파이썬 2.7에 백 포트되었습니다 str의 3 .format() 방법을 사용할 수 있습니다

lbl = tkinter.Label(window, text="What is {} + {}?".format(a, b)) 

을 어느 쪽이든, text= 인수는 하나의 완성 된 문자열을 전달해야합니다.