La définition de la continue
déclaration est:
L'
continue
instruction continue avec l'itération suivante de la boucle.
Je ne trouve pas de bons exemples de code.
Quelqu'un pourrait-il suggérer des cas simples où cela continue
est nécessaire?
La définition de la continue
déclaration est:
L'
continue
instruction continue avec l'itération suivante de la boucle.
Je ne trouve pas de bons exemples de code.
Quelqu'un pourrait-il suggérer des cas simples où cela continue
est nécessaire?
Voici un exemple simple:
for letter in 'Django':
if letter == 'D':
continue
print("Current Letter: " + letter)
La sortie sera:
Current Letter: j
Current Letter: a
Current Letter: n
Current Letter: g
Current Letter: o
Il continue à l'itération suivante de la boucle.
continue
fait mais ce n'est pas trop utile, quand vous pourriez le faireif letter != 'D': print 'Current Letter:', letter
J'aime utiliser continuer dans des boucles où il y a beaucoup de choses à remplir avant de passer aux choses sérieuses. Donc, au lieu d'un code comme celui-ci:
Je reçois un code comme celui-ci:
En faisant cela, j'évite le code très profondément imbriqué. En outre, il est facile d'optimiser la boucle en éliminant d'abord les cas les plus fréquents, de sorte que je n'ai à traiter que les cas rares mais importants (par exemple, le diviseur est 0) lorsqu'il n'y a pas d'autre showstopper.
la source
continue
de cette manière est similaire à l'utilisationGOTO
. Cependant, c'est la bonne façon d'utiliserGOTO
.Habituellement, la situation où continuer est nécessaire / utile est lorsque vous souhaitez ignorer le code restant dans la boucle et continuer l'itération.
Je ne pense pas vraiment que ce soit nécessaire, car vous pouvez toujours utiliser des instructions if pour fournir la même logique, mais cela peut être utile pour augmenter la lisibilité du code.
la source
if <condition>: continue
plutôt que d'if not <condition>: ...
éviter un niveau d'indentation qui serait autrement nécessaire s'il était écrit sans lui.continue
instruction, nous sautons essentiellement d'une section de test conditionnel et permettons à l'itération de la boucle de continuer à la prochaine itération? Je ne vois pas comment cela serait mieux que d'utiliserelse
. S'agit-il simplement d'une amélioration de la lisibilité et des performances d'exécution?continue est une déclaration de contrôle extrêmement importante. Le code ci-dessus indique une application typique, où le résultat d'une division par zéro peut être évité. Je l'utilise souvent lorsque j'ai besoin de stocker la sortie de programmes, mais je ne veux pas stocker la sortie si le programme est tombé en panne. Notez que pour tester l'exemple ci-dessus, remplacez la dernière instruction par print 1 / float (x), ou vous obtiendrez des zéros chaque fois qu'il y a une fraction, car randint renvoie un entier. Je l'ai omis pour plus de clarté.
la source
Certaines personnes ont fait des commentaires sur la lisibilité, en disant: "Oh, cela n'aide pas beaucoup la lisibilité, qui s'en soucie?"
Supposons que vous ayez besoin d'une vérification avant le code principal:
Notez que vous pouvez le faire après que le code principal a été écrit sans changer ce code de toute façon. Si vous différez le code, seule la ligne ajoutée avec «continuer» sera mise en surbrillance car il n'y a pas de modifications d'espacement dans le code principal.
Imaginez que vous deviez faire un breakix de code de production, qui se révèle être simplement en ajoutant une ligne avec continue. Il est facile de voir que c'est le seul changement lorsque vous examinez le code. Si vous commencez à envelopper le code principal dans if / else, diff mettra en évidence le code nouvellement mis en retrait, à moins que vous n'ignoriez les changements d'espacement, ce qui est particulièrement dangereux en Python. Je pense qu'à moins que vous n'ayez été dans une situation où vous devez déployer du code à court préavis, vous ne l'apprécierez peut-être pas pleinement.
la source
la source
continue
déclaration ajoute ici? Il pourrait être éliminé en utilisantelement not in colors
, et le code serait tout aussi lisible.Disons que nous voulons imprimer tous les nombres qui ne sont pas des multiples de 3 et 5
la source
if x %3 == 0 or x % 5 == 0:
,pass
,else:
,print x
continue
. Ma conclusion est qu'il n'y a jamais besoin , mais dans certains cas (comme celui-ci), le code est plus lisible en utilisantcontinue
. C'est un très bon exemple.Ce n'est pas absolument nécessaire car cela peut être fait avec des IF mais c'est plus lisible et aussi moins coûteux en temps d'exécution.
Je l'utilise afin de sauter une itération dans une boucle si les données ne répondent pas à certaines exigences:
Production:
Comme vous pouvez le voir, la mauvaise valeur ne l'a pas fait après l'
continue
instruction.la source
if
ne peut faire cecontinue
que si tout le code est contenu dans un bloc.continue
ignore le code qui est même en dehors duif
bloc.Par exemple, si vous souhaitez faire différentes choses en fonction de la valeur d'une variable:
Dans l'exemple ci-dessus, si j'utilise
break
l'interpréteur sautera la boucle. Mais aveccontinue
elle ignore uniquement les instructions if-elif et passe directement à l'élément suivant de la boucle.la source
my_var
de0
.continue
.elif
devrait être un fichierif
. Le code ne donne simplement pas l'impression que vous savez ce que vous faites.continue
saute simplement le reste du code dans la boucle jusqu'à la prochaine itérationla source