Vous êtes sur la page 1sur 9

Chapitre 3: Les structures itératives

I- Introduction
En programmation, on est souvent amené à répéter plusieurs fois une ou plusieurs
instructions. Les structures itératives (ou répétitives) permettent d'exécuter plusieurs fois de
suite une ou plusieurs instructions, d’où leur appellation équivalente de boucle.
Incontournables à tout langage de programmation, les boucles vont nous aider à réaliser cette
tâche de manière compacte et efficace.

II- La fonction range()


L’instruction range() est une fonction spéciale en Python qui génère des nombres entiers
compris dans un intervalle. Elle fonctionne sur le modèle range([début,] fin[, pas]). Les
arguments entre crochets sont optionnels.
L’argument optionnel début est par défaut égal à 0.
On s’arrête toujours en fin-1.
L’argument optionnel pas qui est par défaut égal à 1 peut être un entier positif ou négatif.

NB : _ donne le résultat de la dernière commande exécutée.

La notion d’intervalle est utilisée pour déterminer la plage des valeurs que va prendre un
compteur dans une boucle.

1
III- La boucle for

Syntaxe :

L’instruction Pour est matérialisée via le mot clé for de python dont la syntaxe a la forme
suivante :
Pour <compteur> de <début> à <fin> faire
<instruction(s)>
Finpour

• <compteur> : compteur de type entier ;


• <début> et <fin> : valeur initiale et valeur finale du compteur ;
• <instruction(s)> : action ou séquence d’actions à répéter (fin-debut +1) fois ;
• La boucle for est utilisée lorsque le nombre d’itération est connu à l’avance ;
• <compteur> reçoit une valeur initiale <début> pour la première fois (par défaut égale 0),
<début> ne doit pas être modifiée par une action de traitement à l’intérieur de la boucle;
• <compteur> est incrémenté par défaut par 1 à chaque exécution du corps de la boucle for.
Cette valeur d’incrémentation est appelée le pas de la boucle ;
• L’exécution de la boucle s’arrête lorsque <compteur> atteint <fin-1>.
• Notons que l’instruction for réserve une indentation pour le bloc qui se répète.

1- Boucle croissante

Supposons qu’on veut utiliser une boucle for pour effectuer différents affichages :

• affichage des entiers compris entre 0 et 3 :

• affichage des entiers compris entre 1 et 10 :

2
• affichage des entiers impairs compris entre 1 et 20 :

2- Boucle décroissante :
Le pas doit être une valeur négative avec l’argument début > l’argument fin :

Remarque :
On peut utiliser une boucle for pour itérer sur les éléments d’une chaîne de caractères. La
forme générale de la boucle est la suivante :

Exemple :

3
IV- La boucle while

On utilise l’instruction while pour répéter un traitement tantque une condition est vérifiée
ou jusqu’à ce qu’une condition soit vraie. Notons que l’instruction while réserve une
indentation pour le bloc qui se répète.
1- TANTQUE ….FAIRE :

Syntaxe :

Tantque (Condition) faire


<instruction(s)>
Fintantque

• <Condition> : condition d’exécution de la boucle.


• <instruction(s)> : action ou ensemble d’actions à exécuter tant que la condition est
vérifiée.
• Le traitement est exécuté tant que la condition est vérifiée sinon on sort de la boucle.
• Si la condition n’est pas vraie dès le début, la boucle ne sera jamais exécutée (0 fois).

• Exemple 1: le nombre d’itérations est connu à l’avance :


On se propose de calculer la somme S=1+2+…+n avec n une donnée :

• Exemple 2 : le nombre d’itérations est inconnu à l’avance (durée imprévisible du


traitement) :
On demande de saisir une variable x strictement positive et de proposer à l’utilisateur la
possibilité d’introduire une nouvelle valeur en cas où x ne vérifie pas la condition :

4
2- REPETER ….JUSQU’A :

Syntaxe :

Répéter
<instruction(s)>
Jusqu’à (<Condition>)

• <Condition>: condition d’arrêt et de sortie de la boucle


• <instruction(s)>: action ou ensemble d’actions à exécuter tant que la condition n’est pas
vérifiée, dès qu’elle soit vérifiée, l’exécution du traitement s’arrête.
• Le nombre de répétition n’est pas connu à l’avance.
• Le traitement est exécuté au moins une fois quelque soit le résultat de la condition.

Exemple 1 : Contrôle de saisie

Exemple 2 : On se propose de calculer la somme s=1+2+…+n avec n une donnée avec le


contrôle de saisie :

5
V- Les instructions continue – break – else
1- L’instruction continue

Elle permet de sauter une itération d’une boucle et de passer à l’itération suivante :

2- L’instruction break

Elle permet de quitter la boucle quand une condition est vraie :

3- L’instruction else

Elle permet d’exécuter un traitement alternatif quand une boucle se termine :

6
VI- Gestion des exceptions
Quand une erreur se produit dans un script, elle provoque l’arrêt du programme et
l’affichage d’un message d’erreur. Pour éviter cette interruption brutale, on peut appliquer un
traitement spécifique. Plus généralement, on peut traiter une situation exceptionnelle dont on
ne sait pas forcément où et quand elle va survenir à l’intérieur d’un bloc donné. Plutôt que de
parler d’erreur, on emploiera donc le terme “exception” et prévoir une réaction adaptée à une
exception, c’est la “rattraper”.

Python possède beaucoup d’exceptions prédéfinies (cf


http://docs.python.org/3.3/library/exceptions.html) En voici juste quelques-unes :

• IndexError : Accès à un élément d’une séquence en dehors des limites de celle-ci


• NameError : Utilisation d’un objet (variable) non existant
• SyntaxError : Erreur de syntaxe dans une instruction
• TypeError : Application d’une opération sur un objet qui n’est pas de type adéquat
• IOError : Echec d’une opération d’entrée/sortie
• ZeroDivisionError : Division par 0
• ImportError : Echec de l’import d’un module

Pour le traitement des exceptions, Python offre la clause try... except ... else. La forme la
plus simple est la suivante : le bloc d’instructions 2 est parcouru si une exception est
rencontrée dans le bloc 1 (cette exception provoque l’arrêt du bloc d’instructions1 et le
passage immédiat au bloc2). Le bloc d’instructions 3 ne sera exécutée que si aucune exception
n’a été levée.

7
On peut également prévoir un traitement particulier pour telle ou telle exception. Dans ce
cas, on utilisera une construction un peu plus élaborée, du genre :

On peut appliquer un même traitement à plusieurs exceptions. Pour celà, on écrira :


except NomException1, NomException2,....

La clause finally permet d’exécuter du code quel que soit le résultat de l’exécution du bloc
try :

8
Les assertions sont des prédicats devant être évaluées comme True. Dans le contraire, une
exception AssertionError est levée pour indiquer que l’expression est fausse.

Vous aimerez peut-être aussi