我有一个在Python中的交通灯模拟器,它运行正常,但第一次运行后它刚刚结束,我需要它在一个循环,例如红 - 黄 - 绿,然后再次红 - 黄绿色等等。我在这里错过了什么?我是新来的Python,如果这是一个noob问题,请不报 下面是我的代码:交通灯模拟器错误
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.05)
def redb(a):
for i in range(a):
red=win.create_oval(5,5,50,50, fill="black")
tk.update()
time.sleep(0.05)
def amber(a):
for i in range(a):
amber=win.create_oval(5,55,50,100, fill="orange")
tk.update()
time.sleep(0.05)
def amberb(a):
for i in range(a):
amber=win.create_oval(5,55,50,100, fill="black")
tk.update()
time.sleep(0.05)
def green(a):
for i in range(a):
green=win.create_oval(5,105,50,150, fill="green")
tk.update()
time.sleep(0.05)
def greenb(a):
for i in range(a):
green=win.create_oval(5,105,50,150, fill="black")
tk.update()
time.sleep(0.05)
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()
red(30)
redb(1)
amber(10)
amberb(1)
green(30)
greenb(1)
tk.mainloop()
每次绘制和重绘“灯光”似乎都没有必要。如果您保持对每个灯的引用,则可以使用[itemconfig](http://effbot.org/tkinterbook/canvas.htm) – asongtoruin