Tkinter标签中的文本和变量

时间:2017-05-13 05:23:41

标签: python 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 个答案:

答案 0 :(得分:2)

问题在于这一行:

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

text=命名参数需要一个字符串,但是您传递了字符串"What is",后面跟着Python的其他位置参数。你不能用逗号来构建你的字符串。你可以走得很远:

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

或者您可以使用Python2样式的%格式运算符或.format()的较新的Python 3 str方法,该方法也被反向移植到Python 2.7:

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

无论哪种方式,text=参数都必须传递一个完整的字符串。

相关问题