我正在研究代码,但是我不太确定在涉及try-except块时代码如何完全流经循环。代码如下:
while len(usernames)>0:
for username in usernames:
while current_count<aimed_count:
try:
"""processing stuff"""
except error:
if:
if:
#handle it
else:
usernames.remove(username)
else:
usernames.remove(username)
usernames.remove(username)
现在,如果我捕获到错误块中的两个if语句的错误,我希望我的代码在try块的开头继续回来,我相信它(所以没有问题,希望如此)。如果我在except块中捕获到通过else else语句的错误,则代码无法返回尝试阻止,因为用户名不再存在。那么,在这两种情况下,如何确保代码从第一个while循环开始?我应该在其他两个陈述之后加上一个中断声明吗?
答案 0 :(得分:0)
是的,请稍等休息一下。这将终止当前循环。
结合使用continue,它将进入下一次迭代,你可以让它看起来更清洁:
while len(usernames)>0:
for username in usernames:
while current_count<aimed_count:
try:
"""processing stuff"""
except error:
if:
#handle it
continue
break
我删除了从当前列表中删除用户名的行。在迭代之后,您似乎想要完全清空列表。在这种情况下,您可以在循环完成后立即执行此操作。