Tkinter斐波那契程序仅显示第一个数字(python 3) Ki

2024-09-29 06:31:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我在写一个程序,一次显示一个斐波那契数列。你应该输入你想要的数字,数字一次显示一个。但是,当我按下按钮时,它只显示1。你知道吗

第一个版本的代码不起作用,因为你会按下按钮,只得到最终的数字。我试图通过在函数中添加“returnfib”来修复它(但失败了),但这导致了当前的问题。你知道吗

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,其他什么都没有。你知道吗


Tags: fromimportcalccolumn数字sleeproot按钮