错误后如何返回到while循环的顶部

时间:2017-08-29 22:12:28

标签: python-3.x

我在while循环中有一个代码,有时可能会爆炸可以通过更改变量来修复,通常是通过向其添加一个数字。 例如,我有一个包含100个电话号码的列表,第52个号码当前不可用,这可能会导致错误并停止整个程序。 我应该如何重写此示例代码以跳过可能导致错误的数字,并在使用新变量时重新运行:

phoneNumberlength:100
callthisnumber:1
try:
    while callthisnumber <= phoneNumberlength:
        callfunction(callthisnumber)
except:
    callthisnumber = callthisnumber + 1
    #what should i write here to return to that while loop?

1 个答案:

答案 0 :(得分:1)

try / except置于while循环内而不是相反:

while callthisnumber <= phoneNumberlength:
    try:
        callfunction(callthisnumber)
    except:
        callthisnumber = callthisnumber + 1

虽然你应该在这里使用for循环而不是while:

for callthisnumber in range(1, phonenumberlength + 1):
    try:
        callfunction(callthisnumber)
    except:
        pass

您可以使用contextlib.suppress清除此内容:

import contextlib

for callthisnumber in range(1, phonenumberlength + 1):
    with contextlib.suppress(ValueError):
        callfunction(callthisnumber)