我有一个简单的Python交通灯模拟器,一切都很好,但我没有添加终止循环的条件,我只需要循环在30秒后终止,什么应该我添加到我的代码:在特定时间后终止循环
import time
from time import sleep
from tkinter import *
tk=Tk()
win=Canvas(tk, width=55, height=200)
win.pack()
#functions
def red(a):
for i in range(a):
red=win.create_oval(5,5,50,50, fill="red")
tk.update()
time.sleep(0.02)
def redb(a):
for i in range(a):
red=win.create_oval(5,5,50,50, fill="black")
tk.update()
time.sleep(0.02)
def amber(a):
for i in range(a):
amber=win.create_oval(5,55,50,100, fill="orange")
tk.update()
time.sleep(0.02)
def amberb(a):
for i in range(a):
amber=win.create_oval(5,55,50,100, fill="black")
tk.update()
time.sleep(0.02)
def green(a):
for i in range(a):
green=win.create_oval(5,105,50,150, fill="green")
tk.update()
time.sleep(0.02)
def greenb(a):
for i in range(a):
green=win.create_oval(5,105,50,150, fill="black")
tk.update()
time.sleep(0.02)
return red
def lights():
red=win.create_oval(5,5,50,50, fill="black")
amber=win.create_oval(5,55,50,100, fill ="black")
green=win.create_oval(5,105,50,150, fill="black")
#end of functions
#calling the functions
lights()
while True:
red(30)
redb(1)
amber(10)
amberb(1)
green(30)
greenb(1)
tk.mainloop()
也许你可以[修复你的缩进](http://stackoverflow.com/posts/43327613/edit)所以你的代码不是废话。 – khelwood
我做得很匆忙,我正在尝试新的东西 –
代码中的缩进被打破了。 –