python - Tkinter Fibonacci 程序仅显示第一个数字(python 3)Ki
问题描述
我正在编写一个程序,一次显示一个数字的斐波那契数列。您应该输入您想要的数字数量,并且数字一次显示一个。但是,当我按下按钮时,它只显示 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 而没有别的。
解决方案
推荐阅读
- c - C 动态链接符号解析
- r - R survminer 95%CI 估计方法
- java - 通过 t3 协议访问 weblogic 服务器上的 jndi 数据源与直接访问数据库有何不同?
- methods - ActiveRecord 通过 has_many 删除行:通过关联
- python - 将文档存储到 Elastic Search 中现有和不存在的字段中
- ios - 当我的应用程序根据条件关闭时,是否可以禁止推送通知?
- sql - 将 SQL Server 中已弃用的外连接运算符 *= 转换为左连接
- nestjs - 如何在 NestJS 中序列化 Prisma 对象?
- php - 如果没有可用的运输选项,则阻止查看结帐页面 WooCommerce
- expo - 事件监听器不会在 expo、react-navigation 中触发,但用于之前工作