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

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

115 голосов
/ 14 февраля 2009

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

Ответы [ 6 ]

302 голосов
/ 14 февраля 2009

Вы ищете продолжить .

44 голосов
/ 14 февраля 2009
for i in iterator:
    try:
        # Do something.
        pass
    except:
        # Continue to next iteration.
        continue
16 голосов
/ 14 февраля 2009

Как то так?

for i in xrange( someBigNumber ):
    try:
        doSomethingThatMightFail()
    except SomeException, e:
        continue
    doSomethingWhenNothingFailed()
11 голосов
/ 04 апреля 2018

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

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
11 голосов
/ 14 февраля 2009

Я думаю, вы ищете продолжить

3 голосов
/ 16 февраля 2016

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

ПРИМЕЧАНИЕ. Предложение else должно следовать за всеми предложениями except

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