320 votes

Existe-t-il une différence entre `continue` et` pass` dans une boucle for en python?

Existe-t-il une différence significative entre les deux mots-clés python continue et pass comme dans les exemples

 for element in some_list:
    if not element:
        pass
 

et

 for element in some_list:
    if not element:
        continue
 

Je devrais être au courant?

452voto

Sven Marnach Points 133943

Oui, ils font des choses complètement différentes. pass ne fait tout simplement rien, tandis que continue continue à la prochaine itération de la boucle. Dans votre exemple, la différence deviendrait apparente si vous ajoutiez une autre instruction après le if : Après avoir exécuté pass , cette instruction supplémentaire serait exécutée. Après continue , ce ne serait pas.

 >>> a = [0, 1, 2]
>>> for element in a:
...     if not element:
...         pass
...     print element
... 
0
1
2
>>> for element in a:
...     if not element:
...         continue
...     print element
... 
1
2
 

101voto

Peter Points 4655

Oui, il y a une différence. continue force la boucle à commencer à la prochaine itération, tandis que pass signifie "il n'y a pas de code à exécuter ici" et continuera jusqu'au reste ou au corps de la boucle.

Exécutez-les et voyez la différence:

 for element in some_list:
    if not element:
        pass
    print 1 # will print after pass

for element in some_list:
   if not element:
       continue
   print 1 # will not print after continue
 

29voto

tMC Points 4199

continue reviendra en haut de la boucle. pass poursuivra le traitement.

si pass est à la fin de la boucle, la différence est négligeable, car le flux reviendrait de toute façon au sommet de la boucle.

13voto

multipleinterfaces Points 2917

Dans votre exemple, il n'y aura aucune différence, car les deux instructions apparaissent à la fin de la boucle. pass est simplement un espace réservé, en ce sens qu'il ne fait rien (il passe l' exécution à l'instruction suivante). continue , par contre, a un but précis: il indique à la boucle de continuer comme si elle venait juste de redémarrer.

 for element in some_list:
    if not element:
        pass
    print element  
 

est très différent de

 for element in some_list:
    if not element:
        continue
    print element
 

6voto

froadie Points 15184

Oui, il y a une différence. Continue ignore en réalité le reste de l'itération actuelle de la boucle (retour au début). Pass est une déclaration vide qui ne fait rien.

Voir la documentation python

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X