Python 如何同时运行所有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)

我有几个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)

这是一种简单的方法,假设
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如果其中一个答案回答了您的问题,请单击“接受”按钮接受。如果其中一个有用,请单击有用的向上箭头