Python:如果存在任何条件,请再次尝试一些块

时间:2017-02-04 21:17:39

标签: python try-catch

我需要实现下一个算法: 如果我多次False三次,请continue,如果此数字小于3,请反复尝试。

list = [1, 2, 3, 4, 5, 6, 6, 8, 8, 64, 4, 5, 6]
result = False
for elem in list:
    trying = 0
    while not result:
        print(elem)
        try:
            result = elem % 2 == 0
        except:
            trying += 1
            print(trying)
            if trying == 3:
                continue
            else:
                pass

它不会阻止except。 任何人都可以解释一下,我应该改变什么才能获得理想?

1 个答案:

答案 0 :(得分:1)

只有在相应的except块内引发异常时才会执行try块。

您的代码不会产生任何异常(除非elem是一个不支持%运算符的对象,但由于您只使用整数,因此不会出现这种情况。发生)。

您不需要try-except声明。 if语句更合适:

while not result:
    print(elem)
    result = elem % 2 == 0
    if not result:
        trying += 1
        print(trying)
        if trying == 3:
            continue
        else:
            pass

其次,您使用continue的方式不会导致代码在执行else分支时执行与while分支不同的操作1}}循环。您可能打算使用break