Ignorer les itérations en Python

J'ai une boucle en cours, mais il y a la possibilité que des exceptions soient soulevées à l'intérieur de la boucle. Ceci bien sûr arrêterait mon programme tous ensemble. Pour éviter que j'attrape les exceptions et les gère. Mais le reste de l'itération s'exécute même si une exception s'est produite. Y a-t-il un mot-clé à utiliser dans ma clause except: pour simplement ignorer le reste de l'itération en cours?

88
demandé sur jilles de wit 2009-02-14 22:48:04

6 réponses

Vous recherchez continuer .

244
répondu André 2018-08-03 09:59:02
for i in iterator:
    try:
        # Do something.
        pass
    except:
        # Continue to next iteration.
        continue
41
répondu Alex McBride 2009-02-14 19:52:29

Quelque chose comme ça?

for i in xrange( someBigNumber ):
    try:
        doSomethingThatMightFail()
    except SomeException, e:
        continue
    doSomethingWhenNothingFailed()
16
répondu S.Lott 2012-12-03 12:26:05

Je pense que vous cherchez continuer

9
répondu Jason Punyon 2009-02-14 19:51:02

Exemple pour Continuer:

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')

Sortie:

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
6
répondu MedImage 2018-04-04 08:31:52

Pour ce cas d'utilisation spécifique, l'utilisation de try..except..else est la solution la plus propre, la clause else sera exécutée si aucune exception n'a été levée.

Remarque: La clause else doit suivre toutes les clauses except

for i in iterator:
    try:
        # Do something.
    except:
        # Handle exception
    else:
        # Continue doing something
2
répondu Istvan Jeno Veres 2016-02-16 19:31:13