2017-05-13 6 views
-1

私はタイムテーブルテストアプリケーションを作成しようとしています。このアプリケーションでは、2つの数字がランダムに生成され、ユーザーは答えを入力するよう求められます。問題は、私は変数がいくつかのテキストと一緒にラベル上に表示されるために取得しようとすることです:Tkinterのテキストと変数lable

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() 

そこで私は、このエラーメッセージが表示されます:

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 

任意の助けをいただければ幸いです。

+1

この質問は、ユーザーがコンテンツを消去しても削除しようとしたため、トピックをオフトピックとして閉じるよう投票しています。 –

答えて

2

問題は、この行です:

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

text=名前付き引数が文字列を望んでいるが、あなたは、Pythonへの追加位置引数どのように見えるかが続く文字列"What is"を通過しました。あなたの文字列を構築するためにコンマを使用することはできません。

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

それとも、Python2スタイル%形式のオペレータまたはもPythonの2.7にバックポートされたstrの新しいPythonの3 .format()メソッドを使用できます:

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

あなたは苦労して行くことができますいずれにしても、text=引数には、完了した単一の文字列を渡す必要があります。

関連する問題