2017-08-29 53 views
-1

我在while循環中有一個代碼,有時可能會炸掉,但通過向其中添加一個數字來更改變量,可以修改。 例如我有一個100電話號碼列表和第52號當前不可用,這可能會導致錯誤,並停止整個程序。 我應該怎麼改寫這個示例代碼跳過,可能會導致錯誤並重新運行從同時用新的變量的數字:如何在出現錯誤後返回到while循環的頂部

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

的聲音,而不是相反像你想要一個'一個'while'塊內try'塊, – khelwood

回答

1

try/exceptwhile循環,而不是周圍的其他方式的內部:

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

儘管你應該在這裏使用的,而不是同時for循環:

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)