需要重启循环

时间:2017-05-15 23:45:03

标签: python loops

仍然是Python中的NOOB。多次卡住。 脚本一个接一个地运行3个序列,每个序列持续20秒。 每个序列都有一个while循环。和一个超时声明。 然后它开始下一个循环,依此类推,直到结束 第三循环。然后退出。我想从顶部重新开始。 我可能有太多的while循环。

#!/usr/bin/env python

# Import required libraries
import time
# More setup

# Choose a matrix to use
mat = mat1
t_end = time.time() + 20
#Start loop
while time.time() < t_end:
  # code
  # loop timeout

# 2 more loops follow just like first one, except matrix becomes
mat = mat2
mat = mat3

1 个答案:

答案 0 :(得分:0)

正如其他人已经评论过的那样,你应该在一个函数中做任何重复的任务。在Python中,使用&#34; def&#34;定义函数。关键词。使用函数,可以按如下方式完成:

import time

#  Replace these dummy assignments with real code
mat1 = "blah"
mat2 = "rhubarb"
mat3 = "custard"

def processMatrix(matrix, seconds=20):
    t_end = time.time() + seconds
    while time.time() < t_end:
        pass  #  'pass' does nothing - replace with your real code

processMatrix(mat1)
processMatrix(mat2)
processMatrix(mat3)

请注意,我还在时间/秒中包含了函数中的参数。这为您提供了更大的灵活性,以防您想要运行不同的测试时间或每个矩阵的不同时间等。但是,我已经使用默认值20来完成它,这样您就不会# 39; t需要将它包含在函数调用中。如果你想覆盖你可以调用的默认值,例如

processMatrix(mat1, 5)

代替,

processMatrix(mat1)