簡體   English   中英

如何跳過循環中的迭代?

[英]How to skip iterations in a loop?

我有一個循環,但有可能在循環內引發異常。 這當然會停止我的程序。 為了防止我捕獲異常並處理它們。 但是,即使發生了異常,其余的迭代也會運行。 在我的except:子句中是否有一個關鍵字可以用來跳過當前迭代的其余部分?

您正在尋找繼續

for i in iterator:
    try:
        # Do something.
        pass
    except:
        # Continue to next iteration.
        continue

繼續示例:

number = 0

for number in range(10):
   number = number + 1

   if number == 5:
      continue    # continue here

   print('Number is ' + str(number))

print('Out of loop')

輸出:

Number is 1
Number is 2
Number is 3
Number is 4
Number is 6 # Note: 5 is skipped!!
Number is 7
Number is 8
Number is 9
Number is 10
Out of loop

像這樣的東西?

for i in xrange( someBigNumber ):
    try:
        doSomethingThatMightFail()
    except SomeException, e:
        continue
    doSomethingWhenNothingFailed()

我想你正在尋找繼續

對於這個特定用例,使用try..except..else是最干凈的解決方案,如果沒有引發異常, else子句將被執行。

注意: else子句必須跟在所有的except子句之后

for i in iterator:
    try:
        # Do something.
    except:
        # Handle exception
    else:
        # Continue doing something

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM