我在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?
答案 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)