在Python中重新启动当前迭代
当在Python中重新启动当前迭代,python,python-2.7,Python,Python 2.7,当testing12(坏顺序,顺序)==True时,我想重新启动第一个for循环的当前迭代。我尝试使用continue,但它跳过了迭代,这不是我想要的 bad_order = [] order = [] for iteration in range(0, 10): args = [] print("\n def test%d(self):" % (iteration)) for input in range(num_arguments): args
testing12(坏顺序,顺序)==True时,我想重新启动第一个for循环的当前迭代。我尝试使用continue,但它跳过了迭代,这不是我想要的
bad_order = []
order = []
for iteration in range(0, 10):
args = []
print("\n def test%d(self):" % (iteration))
for input in range(num_arguments):
args.append(pick_type())
order = args
if testing12(bad_order, order) == True:
continue
try:
result = target(*args)
code = test_to_string(target, args, result)
except Exception as error:
bad_order = args
code = test_to_string_exc(target, args, error)
您可以添加一个内部while
循环,该循环实际上将重复外部循环迭代,直到退出。如果您可以在while测试中设置repeat条件,那么您就完成了:
for iteration in range(0, 10):
while some_condition:
...
如果不是,您可以使用while True
循环,在底部放置一个无条件的中断
,然后使用continue
重复:
for iteration in range(0, 10):
while True:
...
if continue_condition:
continue
...
break
您只需要添加一个在迭代结束时中断的无限while循环
然后,您可以根据需要随时重新启动迭代
bad_order = []
order = []
for iteration in range(0, 10):
while True: #
args = []
print("\n def test%d(self):" % (iteration))
for input in range(num_arguments):
args.append(pick_type())
order = args
if testing12(bad_order, order) == True:
continue
try:
result = target(*args)
code = test_to_string(target, args, result)
except Exception as error:
bad_order = args
code = test_to_string_exc(target, args, error)
break #
您还可以更改:
for iteration in range(0,10):
到
iteration=0
迭代<10时:
仅当不需要重复时才增加迭代请尝试更改您的设计。要么将for的内容放在带有一些参数的函数中,要么根据您的要求完全更改内容。我喜欢重写代码
iteration =0
while iteration < 10 :