2017-05-13 141 views
-1

我想寫一個時間表測試應用程序,其中兩個數字是隨機生成的,然後用戶被要求輸入答案。問題是,當我試圖讓變量的標籤上一起出現一些文字:Tkinter標籤中的文本和變量

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 方法,也已反向移植到Python 2.7:

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

無論如何,text=參數必須傳遞一個單一的完成字符串。