当前位置: 首页 > 面试题库 >

带有嵌套after()函数的Python ForLoop在循环之后发生

钱言
2023-03-14
问题内容

我正在尝试创建一个函数,该函数将重复三次代码块。该代码有一个for循环,以500ms的间隔更改背景。我希望将其重复三遍。

for x in range(0,3):
    window.after(500, lambda: window.configure(bg = "blue"))
    window.after(1000, lambda: window.configure(bg = "green"))
    window.after(1500, lambda: window.configure(bg = "yellow"))
    window.after(2000, lambda: window.configure(bg = "purple"))
    window.after(2500, lambda: window.configure(bg = "red"))
    window.after(3000, lambda: window.configure(bg = "#a1dbcd"))
    print x

在IDE中,“ x”被打印三次,但是窗口背景仅循环一次。

有人可以帮助我解决此代码或找到另一种方法来完成此操作。谢谢。


问题答案:

松本费尔南多(Fernando Matsumoto)回答了您的问题,但这是一种稍微紧凑的方法。

import Tkinter as tk

bgcolors = ("blue", "green", "yellow", "purple", "red", "#a1dbcd")

def cycle():
    delta = 500
    delay = delta
    for x in range(3):
        for c in bgcolors:
            window.after(delay, lambda c=c: window.configure(bg=c))
            delay += delta
        print x

window = tk.Tk()
window.pack_propagate(0)

b = tk.Button(window, text='cycle bg', command=cycle)
b.pack()

window.mainloop()


 类似资料:
  • 对Java来说很新鲜,我在大学的一个入门班做一个项目。我正在尝试做一个方法,在String数组中搜索输入的状态并返回索引。如果用户输入不在数组中的查询,我希望它要求一个新的状态来搜索。我的例外是说“变量statePotion可能尚未初始化。”下面是代码。 提前谢谢!

  • 使用嵌套循环 我仍在努力实现上述问题所述的目标。基本上我的代码现在是这样的: 这很烦人,我不明白为什么会这样! 我想计算地球因太阳和月亮而产生的加速度。所以我有双[]行星质量={earthMass,sunMass,moonMass},一系列粒子物体粒子[]行星={earth,sun,moon}和一系列由于重力而产生的加速度,它们还没有被计算出来:物理矢量[]gravField={earthGrav

  • 例如,我有一个这样的数组 但输出只有11、12、13、14、15。我想打印所有的值。有人能帮我修改一下吗?提前谢谢

  • 转换是否正确,或者是否有更好的方法将嵌套循环转换为流计算? 为什么流变体比旧变体慢得多? 为什么parallel()语句实际上将时间从0.19s增加到0.25s? 我知道微基准是脆弱的,并行性只有在遇到大问题时才值得,但对于CPU来说,即使是0.1秒也是永恒的,对吗? 更新 null

  • 数据库表: 胶片(id\U胶片主键,名称) 流派(id_genrePK,名称) film_genre(id_filmFK,id_genreFK) 这将输出流派表中的所有流派: 这将输出特定电影的电影类型表中的所有选定类型: 我有一个问题,从数据库输出数据到多个选定的列表中的形式。这是一个电影数据库,我正在进行Foreach迭代,以读取电影流派的所有行,并输出到多个选择字段。但是我在向列表输出“选定

  • 我有以下python生成器: 而且我想在Java中实现一个迭代器,它的行为有点像以前的生成器。我试图使用两个内部迭代器,但它不起作用。想法?