Le code Python suivant aboutira à N (14) étant imprimé, car la boucle Cependant, je veux le contraire de cette . Y a-t-il un moyen de faire un pour ... sinon em> (ou tandis que ... sinon em>) boucle, mais n'exécute que le code em> si la boucle a fait em> pause? p> p> pour code> est terminée.
4 Réponses :
Il n'y a pas de explicite pour ... ElseIfbrebrebrebrebrebrebreak Code> - Construction semblable à Python (ou dans n'importe quelle langue que je connaisse) car vous pouvez simplement le faire:
for n in range(15):
if n == 100:
print(n)
break
Sûrement pas ce que l'op voulait?
Pourquoi pas? Il a le même effet. Si vous souhaitez que le code soit exécuté lorsque vous rencontrez une instruction code> Break CODE>, alors ... exécutez le code avant la déclaration de pause
Je n'ai pas vu des constructions comme ça en soi, mais vous pouvez toujours utiliser * shudders * goto code>
Le point est que ce que l'OP voulait n'est pas ce qu'il cherche vraiment, il y a une meilleure façon de le faire.
Un peu plus de solution générique utilisant des exceptions au cas où vous cédez plusieurs points de la boucle et ne souhaitez pas dupliquer le code:
try: for n in range(15): if n == 10: n = 1200 raise StopIteration() if n > 4: n = 1400 raise StopIteration() except StopIteration: print n
Je n'aime pas vraiment les réponses affichées jusqu'à présent, car elles ont toutes besoin que le corps de la boucle soit changé, ce qui pourrait être gênant / risqué si le corps est vraiment compliqué, voici un moyen de le faire en utilisant un drapeau. Remplacer _break code> avec
trouvé code> ou quelque chose d'autre significatif pour votre cas d'utilisation.
for n in range(15):
if n == 100:
break
else:
return
print(n)
Utilisation:
for n in range(15): if n == 100: break else: print("loop successful") if n != range(15)[-1]: print("loop failed")
Cela donne un résultat erroné si le break code> se produit dans la dernière itération de la boucle. Il imprimera i> "Boucle réussie" et "Boucle a échoué" dans ce cas.
S'il vous plaît ne publiez pas uniquement le code comme réponse, mais fournissez également une explication de votre code et de la manière dont il résout le problème de la question. Les réponses avec une explication sont généralement plus utiles et de meilleure qualité, et sont plus susceptibles d'attirer des upvotes.
Salut! Bien que ce code puisse résoudre la question, y compris une explication de la manière et pourquoi cela résout le problème aiderait vraiment à améliorer la qualité de la qualité. de votre message et aboutit probablement à plus de votes ultérieurs. N'oubliez pas que vous répondez à la question pour les lecteurs à l'avenir, pas seulement la personne qui demande maintenant. S'il vous plaît Modifier Votre réponse pour ajouter des explications et donner une indication de quelles limitations et hypothèses s'appliquent.
Trop fatigué pour écrire une solution ATM (peut-être plus tard!) Mais l'utilisation de contextmanagers pourrait être une solution! Source d'inspiration pourrait être ici: Stackoverflow.com/a/3171971/1524913