我正在尝试编写一个时间表测试应用程序,其中随机生成两个数字,然后要求用户键入答案。问题在于,当我尝试将变量显示在标签旁边的某些文本时:
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
任何帮助将不胜感激。
答案 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=
参数都必须传递一个完整的字符串。