Pythonでの反復のスキップ


159

ループが発生していますが、ループ内で例外が発生する可能性があります。もちろん、これは私のプログラムを一斉に停止します。それを防ぐために、例外をキャッチして処理します。ただし、例外が発生しても残りの反復は実行されます。except:現在の反復の残りをスキップするために、節で使用するキーワードはありますか?


4
受け入れられた回答(を使用continue)がどのように例外をキャッチするかはわかりませんが、受け入れられました。したがって、質問は本当に、本当に混乱しています。
S.Lott、2009

@ S.Lott例外をキャッチするのにキーワードは必要ありません。コード全体の一般的なフローについて話していました。
The.Anti.9 2009

@ The.Anti.9。何?まず、「例外をキャッチしたい」とおっしゃっていました。今、あなたは「例外をキャッチするのにキーワードは必要ない」と言っています。これを何らかの方法で明確にできますか?
S.Lott、2009

1
@ S.Lott。キーワードで例外をキャッチする必要はありません。コード内のステートメントを除いて、試してみなければなりません...
The.Anti.9

1
受け入れられた回答と一致するように質問を書き直しました。
jilles de wit

回答:




17

このようなもの?

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

1
パスではなく続行を使用するように編集されました。
jilles de wit

16

続行の例:

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


5

この特定のユースケースでtry..except..elseは、using が最もクリーンなソリューションであり、else例外が発生しなかった場合に句が実行されます。

注:else句はすべてのexcept句の後に続く必要があります

for i in iterator:
    try:
        # Do something.
    except:
        # Handle exception
    else:
        # Continue doing something
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.