Python: Boucles en Python: Difference between revisions
Wiki-cours (talk | contribs) |
Wiki-cours (talk | contribs) |
||
Line 48: | Line 48: | ||
break | break | ||
</source> | </source> | ||
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