Python 如何同时运行所有for循环
我有几个for循环,它将以0.5秒的间隔闪烁对象5秒。我试图找出如何使所有这些对象同时闪烁,换句话说,我想同时运行所有for循环 需要帮助Python 如何同时运行所有for循环,python,python-3.x,for-loop,wxpython,ipython,Python,Python 3.x,For Loop,Wxpython,Ipython,我有几个for循环,它将以0.5秒的间隔闪烁对象5秒。我试图找出如何使所有这些对象同时闪烁,换句话说,我想同时运行所有for循环 需要帮助 count1=5 for k in range (count1): error.setFill('grey') time.sleep(.50) error.setFill('orange') time.sleep(.50)
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)
这是一种简单的方法,假设
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)
在另一种情况下,您需要为每个灯光创建一个新线程。鉴于您的所有循环都在
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)
这样就可以一次运行所有循环,或者更确切地说是在同一个循环中运行,而且所需的工作量和输入更少。希望有帮助 使用线程模块否,这个问题被标记为
wxpython
,因此应该使用GUI工具包及其事件系统来执行与计时器相关的任务。没有sleep(),没有多个线程,没有多个进程。@blubberdiblub我同意。按照VMRuiz和Charlie的建议将这些循环组合成一个循环,或者以500毫秒的间隔发出wx.Timer()命令one@Nina如果其中一个答案回答了您的问题,请单击“接受”按钮接受。如果其中一个有用,请单击有用的向上箭头