我需要实现下一个算法:
如果我多次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
。
任何人都可以解释一下,我应该改变什么才能获得理想?
答案 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
。