gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 17:33:18 28 4
gpt4 key购买 nike

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

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' 被打印了三次,但窗口背景只循环了一次。

有人可以帮我修复此代码或找到替代方法吗?谢谢。

最佳答案

你在打电话

window.after(500, lambda: window.configure(bg = "blue"))
window.after(1000, lambda: window.configure(bg = "green"))
...

3 次。这相当于写:

window.after(500, lambda: window.configure(bg = "blue"))
window.after(500, lambda: window.configure(bg = "blue"))
window.after(500, lambda: window.configure(bg = "blue"))

500 毫秒后,您将背景设置为蓝色 3 次。

要连续设置背景,请在每次迭代时添加一个间隔。例如,而不是

for i in range(3):
window.after(500, lambda: window.configure(bg = "blue"))
window.after(1000, lambda: window.configure(bg = "green"))

for i in range(3):
window.after(i * 1000 + 500, lambda: window.configure(bg = "blue"))
window.after(i * 1000 + 1000, lambda: window.configure(bg = "green"))

此代码将执行:

  • 第一次迭代:

    window.after(500, lambda: window.configure(bg = "blue"))
    window.after(1000, lambda: window.configure(bg = "green"))
  • 第二次迭代:

    window.after(1500, lambda: window.configure(bg = "blue"))
    window.after(2000, lambda: window.configure(bg = "green"))
  • 第三次迭代:

    window.after(2500, lambda: window.configure(bg = "blue"))
    window.after(3000, lambda: window.configure(bg = "green"))

注意间隔是如何在每次迭代中增加而不是保持不变。

关于带有嵌套 after() 函数的 Python For 循环发生在循环之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32765572/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com