在Python中重新启动当前迭代

2024-10-01 04:55:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在testing12(bad_order, order) == 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)

Tags: tointesttruetargetforargscode
3条回答

您还可以更改:

for iteration in range(0,10):

^{pr2}$

只有在不需要重复时才进行增量迭代

您只需要添加一个在迭代结束时中断的无限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 #

您可以添加一个内部while循环,该循环实际上会重复外部循环迭代,直到它退出为止。如果可以在while测试中设置repeat条件,那么就完成了:

for iteration in range(0, 10):
    while some_condition:
        ...

如果没有,可以使用while True循环,在底部放置一个无条件的break,并使用continue来重复:

^{pr2}$

相关问题 更多 >