Les boucles

Une structure en boucle permet de répéter une séquence d’instructions (une portion de code) autant de fois que nécessaire.

Elles rendent possible le parcours de certaines séquences comme les chaînes de caractères, les listes, les dictionnaires

for … in … :

Une boucle for ... in ... :  est utilisée lorsqu’on veut répéter une séquence d’instructions un nombre prédéfini de fois : c’est à dire lorsqu’on sait à l’avance combien de fois la répétition doit avoir lieu.

La structure générale d’une boucle for ... in ... :  est la suivante :

Que l’on peut traduire par :

affecter successivement à une variable la valeur de chaque élément d’un itérateur et faire …

Un itérateur est un objet itérable, c’est à dire un objet que l’on peut « parcourir ».

On peut ainsi parcourir une liste :

… un tuple :

… mais aussi une chaîne de caractères :

Et il existe diverses façons de parcourir un dictionnaire :

parcourir ses clefs

… ses valeurs

… où encore les deux …

Cette dernière forme montre comment parcourir un tableau (= une liste de listes) :

range()

Si on désire répéter une séquence d’instructions un certain nombre de fois, il faudra créer un itérateur spécialement pour cette occasion. On utilise la fonction range()  :

Remarque : il faut convertir l’objet range en liste pour pouvoir afficher son contenu avec print() , mais c’est inutile en revanche pour l’utiliser dans une boucle for ... in ... :  .

 

enumerate()

Lorsqu’on parcoure un objet itérable, on veut parfois connaitre l’indice de l’itération.

La fonction enumerate()  permet d’obtenir une liste de tuples (indice, valeur)  :

objet enumerate  que l’on peut parcourir :

Exercices :

  • Écrire une fonction table(n)  qui affiche la table de multiplication par \(n\). Le résultat devra être affiché sous la forme :
    • 6 fois 1 font 6
    • 6 fois 2 font 12
  • Un nombre est premier s’il est divisible uniquement par 1 et par lui-même. Écrire une fonction premiers(n)  qui affiche tous les nombres premiers inférieurs à \(n\).

 


while … :

Une boucle while ... :  est utilisée lorsqu’on veut répéter une séquence d’instructions un nombre de fois non prédéterminé : c’est à dire lorsqu’on ne sait pas à l’avance combien de fois il faudra faire la répétition.

La structure générale d’une boucle while ... :  est la suivante :

Ce qui peut se traduire par :

tant que cette condition est vraie,

faire …

Cette structure permet également de parcourir des itérateurs (mais pas obligatoirement en entier),

mais aussi de réaliser toutes sortes d’actions répétitives :

 

Attention : une boucle while ... :  mal écrite peut être infinie !

Exemple, si on oublie d’incrémenter la variable qui sert de condition de fin :

Exercice :

Écrire une fonction somme2(n)  qui renvoie la somme des carrés des $n$ premiers entiers.

 

 


break

Le mot-clé break  permet d’interrompre une boucle avant la fin « normale ».
des
Son usage simplifie parfois les choses :

Soit une liste contentant les résultats de lancés de 2 dés :

On souhaite en extraire le premier couple dont la somme vaut 5.

.. est équivalente à :

Cette dernière forme se termine « normalement », mais est un peu moins claire, non ?

Remarque : si aucun lancé n’a la valeur 5, cela donne un résultat inattendu, non géré ici !

Exercice :

  • Compléter le  code ci-dessus de manière à gérer le cas où aucun lancé ne fait 5.

continue

Le mot-clé continue  permet de continuer une boucle, en repartant directement à la ligne du  while ... :  ou for ... in ... :  .

Par exemple, dans le cas des dés :

Dépôt de fichier réponse

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

code