Y a-t-il une différence significative entre les deux mots continue
- clés python 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?
while True:; pass # Busy-wait for keyboard interrupt (Ctrl+C)
dans les documents en python, je suis confus dans le chemin, que je ne trouve pas qu'il fait clair qu'il se comporte de manière équivalente à continuer dans ce cas ou quelque chose d'autre était prévu. La première phrase "La déclaration de passage ne fait rien." caractérise toutes les réponses à ma question, mais d'une manière ou d'une autre, cela n'a pas attiré mon attention.Réponses:
Oui, ils font des choses complètement différentes.
pass
ne fait simplement rien, tout encontinue
poursuivant avec l'itération de boucle suivante. Dans votre exemple, la différence deviendrait apparente si vous ajoutiez une autre instruction aprèsif
: Après l'exécutionpass
, cette instruction supplémentaire serait exécutée. Aprèscontinue
, ce ne serait plus le cas.la source
pass
mot clé ne fait rien, il n'est utile que lorsque vous avez besoin syntaxiquement d'une suite en retrait, mais que vous ne voulez rien faire. Un exemple courant est que si vous souhaitez ignorer une exception, vous utilisezexcept SomeException: pass
. Il existe également de nombreux autres cas d'utilisation. Vous n'auriez pas strictement besoin d'un mot-clé pour cela, car vous pourriez utiliser n'importe quelle autre instruction qui ne fait rien (par exemple,0
une instruction parfaitement valide qui n'a pas d'effet), mais avoir un mot-clé pour cela vous permet d'être plus explicite de ne vouloir rien faire.pass
?Oui, il y a une différence.
continue
force la boucle à démarrer à la prochaine itération tandis quepass
signifie "il n'y a pas de code à exécuter ici" et continuera à travers le reste ou le corps de la boucle.Exécutez-les et voyez la différence:
la source
continue
va revenir en haut de la boucle.pass
continuera le traitement.si le passage est à la fin de la boucle, la différence est négligeable car le flux reviendrait tout de même au sommet de la boucle.
la source
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
, d'autre part, a un but précis: il dit à la boucle de continuer comme si elle venait de redémarrer.est très différent de
la source
Il y a une différence entre eux,
continue
ignore l'itération actuelle de la boucle et exécute l'itération suivante.pass
ne fait rien. Il s'agit d'un espace réservé de déclaration vide.Je préfère vous donner un exemple, qui clarifiera mieux cela.
la source
Oui, il y a une différence.
Continue
saute en fait 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 les documents python
la source
Dans ces exemples, non. Si l'instruction n'est pas la toute dernière de la boucle, alors ils ont des effets très différents.
la source
Différence entre passer et continuer dans une boucle for:
Alors pourquoi passer en python?
Si vous souhaitez créer une classe, une méthode ou un bloc vide.
Exemples:
sans 'pass' dans les exemples ci-dessus, lancera IndentationError.
la source
La sortie est
Encore une fois, laissez exécuter le même code avec des modifications mineures.
La sortie est -
Pass ne fait rien. Le calcul n'est pas affecté. Mais continuer revient en haut de la boucle pour procéder au prochain calcul.
la source
Considérez-le de cette façon:
Pass: Python fonctionne uniquement sur l'indentation! Il n'y a pas d'accolades vides, contrairement aux autres langues.
Donc, si vous ne voulez rien faire au cas où une condition est vraie, il n'y a pas d'autre option que passer.
Continuer: Ceci n'est utile qu'en cas de boucles. Dans le cas, pour une plage de valeurs, vous ne voulez pas exécuter les instructions restantes de la boucle après que cette condition est vraie pour cette passe particulière, alors vous devrez utiliser continue.
la source
pass
si l'instruction estTrue
et effectuez l'opération si elle l'estFalse
. Cela permet une analyse efficace des listes polyvalentes.pass
pourrait être utilisé dans des scénarios lorsque vous avez besoin de fonctions, de classes ou de boucles vides pour de futures implémentations, et qu'il n'y a aucune exigence d'exécution de code.continue
est utilisé dans les scénarios où non lorsqu'une condition est remplie dans une boucle et que vous devez ignorer l'itération en cours et passer à la suivante.la source