413 votes

Sortir de boucles imbriquées

<blockquote> <p><strong>Doublon possible :</strong><br> <a href="http://stackoverflow.com/questions/189645/how-to-break-out-of-multiple-loops-in-python">Comment faire pour sortir de plusieurs boucles en Python ?</a> </p> <p>Y a-t-il un moyen plus facile de sortir des boucles imbriquées que de lever une exception ? (En Perl, vous pouvez donner des étiquettes à chaque boucle et continuer au moins une boucle externe).</p><pre><code></code></pre><p>C'est-à-dire, y a-t-il une manière plus agréable que :</p><pre><code></code></pre></blockquote>

970voto

Markus Jarderot Points 33893
<pre><code></code><p>Les mêmes œuvres pour des boucles plus profondes :</p><pre><code></code></pre></pre>

210voto

unwind Points 181987

Il a au moins été suggéré, mais également rejetés. Je ne pense pas qu’il y a une autre façon, Short de recommencer l’essai ou de ré-organisation du code. C’est parfois un peu ennuyeux.

Dans le message de rejet, M. van Rossum mentionne à l’aide de `` , qui est vraiment sensible et quelque chose que je dois me souviens personnellement.  :)

89voto

Mr Fooz Points 21092

Si vous êtes en mesure d’extraire le code de boucle dans une fonction, un `` instruction peut être utilisée pour quitter la boucle ultrapériphérique à tout moment.

60voto

Fábio Santos Points 1018

Utilisez itertools.product !

Voici un lien vers itertools.product dans la documentation de python : http://docs.python.org/library/itertools.html#itertools.product

51voto

Halberdier Points 340

Parfois, j’utilise une variable booléenne. Naïf, si vous voulez, mais je trouve cela assez souple et agréable à lire. Tester une variable peut-être éviter le nouveau test des conditions complexes et peut également recueillir les résultats de plusieurs essais en boucles internes.

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