Tkinter Fibonacci程序仅显示第一个数字(python 3)

时间:2019-07-14 15:29:06

标签: python tkinter

我正在编写一个程序,一次显示一个斐波那契数列。您应该输入想要的数字,数字一次显示一个。但是,当我按下按钮时,它只会显示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而没有别的。

0 个答案:

没有答案