Python: Boucles en Python: Difference between revisions

From Wiki Cours
Jump to navigation Jump to search
Line 48: Line 48:
             break
             break
</source>
</source>
L'instruction continue poursuit la boucle mais en renvoyant au début de l'exécution du bloc sous la boucle:
Le mot-clé '''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>
for i in range(6):
for i in range(6):

Revision as of 16:47, 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

Le mot-clé 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