我正在创建一个应用程序(或程序),单击该按钮后将创建一个新窗口,并在列表框中显示一些数学结果。我希望它还显示数学的执行时间。我尝试使用time.time()
,但是显然,我不能在函数中使用它。
我也尝试使用timeit
,但不知道如何使用它。
我还能怎么做?
from tkinter import *
root = Tk()
def do_math():
window = Toplevel(root)
listbox = Listbox(window)
for i in range(1, 10):
math = i ** 2
listbox.insert(END, str(math))
time = Label(window, text="The math took {} seconds to execute.")
time.pack()
listbox.pack()
b1 = Button(root, text="Click me!", command=do_math).pack()
root.mainloop()
答案 0 :(得分:0)
您不能使用time.time()
函数,因为函数内部有一个名为time
的变量,该变量导致弹出一些异常(UnboundLocalError
),并将该变量重命名为其他变量< strong> OR 在函数顶部插入global time
可以解决此问题。
from tkinter import *
from time import time
root = Tk()
def do_math():
# global time
window = Toplevel(root)
listbox = Listbox(window)
start = time()
for i in range(1, 10000):
math = i ** 2
listbox.insert(END, str(math))
total = time() - start
label = Label(window, text="The math took {} seconds to execute.".format(str(total)))
label.pack()
listbox.pack()
b1 = Button(root, text="Click me!", command=do_math).pack()
root.mainloop()