Python : Les boucles
Introduction
Les boucles permettent de répéter une certaine opération autant de fois que nécessaire.
Elles peuvent aussi permettre de parcourir certaines séquences pour en extraire des éléments précis.
Exemple simple : la table de 7
Programme affichant la table de multiplication par 7, de 1 * 7 à 10 * 7.
1 2 3 4 5 6 7 8 9 10 | print "1 * 7 = ", 1 * 7 print "2 * 7 = ", 2 * 7 print "3 * 7 = ", 3 * 7 print "4 * 7 = ", 4 * 7 print "5 * 7 = ", 5 * 7 print "6 * 7 = ", 6 * 7 print "7 * 7 = ", 7 * 7 print "8 * 7 = ", 8 * 7 print "9 * 7 = ", 9 * 7 print "10 * 7 = ", 10 * 7 |
Première évolution:
1 2 3 4 5 6 7 8 9 10 11 | n = 7 print "1 * ", n, " = ", 1 * n print "2 * ", n, " = ", 2 * n print "3 * ", n, " = ", 3 * n print "4 * ", n, " = ", 4 * n print "5 * ", n, " = ", 5 * n print "6 * ", n, " = ", 6 * n print "7 * ", n, " = ", 7 * n print "8 * ", n, " = ", 8 * n print "9 * ", n, " = ", 9 * n print "10 * ", n, " = ", 10 * n |
Utilisation d’une variable pour pouvoir changer de table facilement.
La boucle “while”
Permet de répéter un bloc d’instructions tant qu’une condition est vraie.
“while” signifie “tant que” en anglais.
1 2 | while condition: # bloc d'instructions |
Pour notre exemple, nous allons créer une variable qui sera incrémentée dans le bloc d’instruction.
Tant que cette variable sera inférieure à 10, le bloc s’exécutera pour afficher la table.
1 2 3 4 5 | n = 7 # Variable contenant le nombre à multiplier i = 0 # Compteur à incrementer while i < 10: # Tant que i est strictement plus petit que 10 print i + 1, " * ", n, " = ", (i + 1) * n # Affichage de la ligne de calcul et du resultat i += 1 # i est incrémente de 1 a chaque tour de boucle |
- i est un standard utilisé quand il est question de boucles et de variables “s’incrémentant”.
- “while” signifie ici: “Tant que i est strictement inférieure à 10“.
- Ne pas oublier les “:” à la fin de la ligne.
- En programmation, on a pour habitude de commencer à compter à partir de 0.
- On ajoute donc +1 pour la table de multiplication.
La boucle “for »
L’instruction “for” travaille sur des séquences. Elle est spécialisées dans le parcours d’une séquence de plusieurs éléments.
1 2 | for element in sequence: # bloc d'instructions |
La séquence à parcourir peut être, par exemple, une chaîne de caractère ou encore une liste.
1 2 3 | chaine = "Bonjour les amis !" # Initialisation de la sequence à parcourir, ici une chaine de caracteres for lettre in chaine: # Parcours de la sequence et instanciation automatique de la variable "lettre" print lettre # Affichage de la valeur de l'instance courante de "lettre" |
- La ligne 2 signifie: “Pour chaque élément (ici lettre) de la séquence (ici chaîne)”.
- La variable “lettre” prend successivement la valeur de chaque élément de la séquence (“B”, “o”, “n”,…).
- Il est inutile d’incrémenter la variable lettre, Python s’en charge.
- Les lettres sont affichées sur une même colonne car “print” revient à la ligne après chaque message.
Le mot clé “in” peut être utilisé ailleurs que dans une boucle “for”.
1 2 3 4 5 6 | chaine = "Bonjour les amis" for lettre in chaine: if lettre in "AEIOUYaeiouy": # Test si l'instance courante de "lettre" est une voyelle print lettre else: print "*" |
On recherche si un élément quelconque est contenu dans un ensemble de donné, ici “AEIOUYaeiouy”.
La fonction “range()” permet d’obtenir une liste de nombre.
1 2 | for i in range(5): print i |
1 2 | for i in range(5, 11): print i |
Les mots clés “break” et “continue”
break
- Permet d’interrompre une boucle.
- Arrête une boucle quelle que soit la condition de celle-ci.
- Utile et fait gagner du temps.
- Mais préférez une boucle avec une condition claire.
continue
- Permet de continuer une boucle.
- Fait repartir directement à la ligne du while ou for.
En résumé
- Une boucle sert à répéter une portion de code en fonction d’un prédicat.
- On peut créer une boucle grâce au mot-clé “while” suivi d’un prédicat.
- On peut parcourir une séquence grâce à la syntaxe “for element in sequence:”.
Cours basé sur les travaux de Vincent Le Goff.