Python: Boucles en Python: Difference between revisions

From Wiki Cours
Jump to navigation Jump to search
No edit summary
Line 37: Line 37:
</source>
</source>


== les instructions break, continue ==
== Les mots-clé break, continue ==
L'instruction break permet d'arrêter une boucle avant sa fin. L'instruction continue est similaire, mais au lieu d'interrompre la boucle, elle revient au début de celle-ci.
 
Deux mots-clé permettent d'agir sur le déroulement d'une boucle: '''break''' permet de sortir d'une boucle, on revient alors au niveau du bloc supérieur à la boucle
<source lang=python>
<source lang=python>
for i in range(5):
for i in range(6):
    if i==3:
        break
     print i
     print i
    for j in range(6):
        if i*j >= 10:
            print i,j
            break
</source>
</source>
affichera
L'instruction continue poursuit la boucle mais en renvoyant au début de l'exécution du bloc sous la boucle:
<source lang=python>
<source lang=python>
0 1 2
for i in range(6):
</source>
    print i
tandis que
    for j in range(6):
<source lang=python>
        if i*j >= 10:
for i in range(5):
            print i,j
  if i==3:
            continue
        continue
  print i
</source>
affichera
<source lang=python>
0 1 2 4
</source>
</source>

Revision as of 17:46, 16 July 2015

Boucle While

Une première manière d'effectuer des boucles en Python utilise un test logique et le mot-clé while:

while test:
    ...
    ...

Il ne faut pas oublier d'indenter le bloc correspondant à l’exécution de la boucle. Par exemple, on peut faire

i=0
while i<10:
    print i**2
    i += 1

Cette structure est utile dans le cas où le test de condition est plus compliqué que dans cet exemple et déterminé après un processus non-trivial à l'intérieur du bloc d’exécution. Il faut en particulier être certain que la condition test=False soit réaliser pour ne pas créer une boucle infinie. Dans le cas ci-dessous, on préférera utiliser une boucle for.

Boucle For

La boucle for permet de parcourir des éléments d'un 'iterable' qui est un objet sur lequel on peut itérer.

for i in iterable:
    ...
    ...

Un iterable peut être un conteneur, typiquement une liste, ou un algorithme qui génère une succession d'élément. Dans ce cours, on utilisera essentiellement des listes. L'exemple précédent se réécrit en

for i in range(10):
    print i**2

dont on voit qu'il est plus concis. Noter que pour gagner un peu d'espace, il est possible de mettre le contenu du bloc d'exécution en ligne si celui-ci ne comporte qu'une seule ligne

for i in range(10): print i**2

Les mots-clé break, continue

Deux mots-clé permettent d'agir sur le déroulement d'une boucle: break permet de sortir d'une boucle, on revient alors au niveau du bloc supérieur à la boucle

for i in range(6):
    print i
    for j in range(6):
        if i*j >= 10:
            print i,j
            break

L'instruction continue poursuit la boucle mais en renvoyant au début de l'exécution du bloc sous la boucle:

for i in range(6):
    print i
    for j in range(6):
        if i*j >= 10:
            print i,j
            continue