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