循环流,try-except块

时间:2014-07-02 13:29:52

标签: python loops break flow-control

我正在研究代码,但是我不太确定在涉及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循环开始?我应该在其他两个陈述之后加上一个中断声明吗?

1 个答案:

答案 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

我删除了从当前列表中删除用户名的行。在迭代之后,您似乎想要完全清空列表。在这种情况下,您可以在循环完成后立即执行此操作。