简体   繁体   English

如何使我所有的for循环同时运行

[英]How to make all of my for loop runs at the same time

I have few for loop that will flash objects for 5 seconds with 0.5 seconds interval. 我很少有for循环,以0.5秒的间隔闪烁对象5秒钟。 And I am trying to figure out how to make all these object to flash at the same time, in other words, I want to run all the for loops at the same time. 我试图找出如何使所有这些对象同时闪烁,换句话说,我想同时运行所有的for循环。

Need help! 需要帮忙!

        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)

This is a simple way to do it, supposing that setFill() is fast enough so they appear to be turning on and off at the same time. 这是一种简单的方法,假设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)

In another case, you will need the create a new thread for each light. 在另一种情况下,您将需要为每个光源创建一个新线程。

Seeing as all your loops are all running in the range of count1 , why not run all commands in the same loop, for example: 既然所有循环都在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)

This is then running all your loops at once, or rather in the same loop, and it takes less effort and typing. 然后,它可以一次运行所有循环,或者宁愿在同一循环中运行,并且省力省力。 Hope that helps! 希望有帮助!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM