Пропуск итераций в Python

У меня есть цикл, но есть возможность для исключений, которые будут подняты внутри цикла. Это, конечно, остановило бы мою программу. Чтобы предотвратить это, я ловлю исключения и обрабатываю их. Но затем остальная часть итерации выполняется, даже если произошло исключение. Есть ли ключевое слово для использования в my except: предложение просто пропустить остальную часть текущей итерации?

6 ответов


вы ищете дальше.


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

что-то вроде этого?

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

Я думаю, вы ищете дальше


пример для продолжения:

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

для этого конкретного случая использования с помощью try..except..else - это чистое решение, будет выполнено, если исключение не возникло.

Примечание:else предложение должно следовать all except п.

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