Python:如果存在任何条件,请重试某个块

Python:如果存在任何条件,请重试某个块,python,try-catch,Python,Try Catch,我需要实现下一个算法: 如果我得到的False超过三次,请执行继续,如果此数字小于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:

我需要实现下一个算法: 如果我得到的
False
超过三次,请执行
继续
,如果此数字小于
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
除了,它不会进入块

有人能解释一下,我应该做些什么来满足需要吗?

只有在相应的
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
循环执行结束时执行的。您可能打算使用
break

result=elem%2==0
False
True
赋值给
结果
。它不能触发任何异常。你期望什么?如果
elem
不是一个列表或一个不包含
%
占位符的字符串或其他东西,就不会引发异常。@Jean Françoisfare是对的,你真的没有理由尝试
除了
。你能解释一下你到底想做什么吗?@leaf我试图执行我的错误。我使用一个库,有时服务器返回错误,但有时一切正常。我试着用一个简单的例子来测试,但现在我明白了,没有错误,只有
True
False