我正在编写一个程序,一次显示一个斐波那契数列。您应该输入想要的数字,数字一次显示一个。但是,当我按下按钮时,它只会显示1。
该代码的第一个版本不起作用,因为您可以按一下按钮并获得最终的号码。我试图(但失败了)通过在函数中添加“ return fib”来修复它,但这导致了当前问题。
from time import sleep
from tkinter import *
def calc():
a = 1
b = 0
c = 0
w = texxt.get()
num = int(w)
for i in range(num):
if a >= b:
fib.set(str(a))
elif b >= a:
fib.set(str(b))
else:
fib.set("ERROR")
break
c = a + b
if a >= b:
b = c
elif b >= a:
a = c
else:
pass
return fib
sleep(1.2)
root = Tk()
fib = StringVar()
texxt = StringVar()
root.title("Fibonacci Calculator")
entry = Entry(root, textvariable = texxt)
entry.grid(row = 0, column = 0, sticky = 'nsew', padx = 3, pady = 3)
button = Button(root, text = "Start", command = calc)
button.grid(row = 1, column = 0, sticky='nsew', padx = 3, pady = 3)
label = Label(root, width = 10, textvariable = fib, relief = 'sunken')
label.grid(row = 0, column = 1, rowspan = 2, sticky = 'nsew')
root.mainloop()
我希望下一个数字每1.2秒出现一次,但我只得到1而没有别的。