我有几个for循环,它会以0.5秒的间隔闪烁对象5秒。我试图弄清楚如何让所有这些对象同时闪现,换句话说,我想同时运行所有的for循环。
需要帮助!
count1=5
for k in range (count1):
error.setFill('grey')
time.sleep(.50)
error.setFill('orange')
time.sleep(.50)
for l in range (count1):
go.setFill('red')
time.sleep(.50)
go.setFill('green')
time.sleep(.50)
for m in range (count1):
warning.setFill('black')
time.sleep(.50)
warning.setFill('red')
time.sleep(.50)
for u in range (count1):
Verify.setFill('green')
time.sleep(.50)
Verify.setFill('grey')
time.sleep(.50)
for w in range (count1):
Launch.setFill('red')
time.sleep(.50)
Launch.setFill('green')
time.sleep(.50)
答案 0 :(得分:0)
这是一种简单的方法,假设setFill()
足够快,因此它们似乎同时打开和关闭。
count1=5
for k in range (count1):
# Turn on
error.setFill('grey')
go.setFill('red')
warning.setFill('black')
Verify.setFill('green')
Launch.setFill('red')
time.sleep(.50)
# Turn off
error.setFill('orange')
go.setFill('green')
warning.setFill('red')
Verify.setFill('grey')
Launch.setFill('green')
time.sleep(.50)
在另一种情况下,您需要为每个灯创建一个新线程。
答案 1 :(得分:0)
看到所有循环都在count1
范围内运行,为什么不在同一循环中运行所有命令,例如:
count1=5
for n in range (count1):
# first line of each loop
error.setFill('grey')
go.setFill('red')
warning.setFill('black')
Verify.setFill('green')
Launch.setFill('red')
# pause and then third line of each loop
time.sleep(.50)
error.setFill('orange')
go.setFill('green')
warning.setFill('red')
Verify.setFill('grey')
Launch.setFill('green')
time.sleep(.50)
然后,这会立即运行所有循环,或者更确切地说是在同一个循环中运行,并且需要更少的工作量和打字。希望有所帮助!