Médaille
N°1 pour apprendre & réviser du collège au lycée.
Savoir programmer des boucles en Python
Découvrez, sur SchoolMouv, des milliers de contenus pédagogiques, du CP à la Terminale, rédigés par des enseignants de l’Éducation nationale.
Les élèves de troisième, de première ou de terminale bénéficient, en plus, de contenus spécifiques pour réviser efficacement leur brevet des collèges, leur bac de français ou leur baccalauréat édition 2023.
Savoir-faire

Pré-requis

Dans un programme, si l’on veut répéter plusieurs fois une de ses parties, on utilise une boucle. Dans ce savoir-faire, nous verrons deux boucles du langage Python à travers des exemples simples :

  • la boucle for que nous utiliserons quand nous saurons, dès le début, combien de fois nous voulons la répéter ;
  • la boucle while que nous utiliserons quand le nombre de répétitions dépendra d’une condition.

Etapes

Boucle for\text{for}

La syntaxe d’une boucle for est la suivante :

for compteur in liste :

Suite d’actions à réaliser

  • À for est associée une variable que nous avons nommée ici compteur. Cette variable prendra successivement toutes les valeurs qui sont données après in.
  • C’est elle qui contrôle le nombre de fois que la boucle sera exécutée.
  • Après cette ligne, nous indiquons la suite d’actions à opérer.
  • Ces actions se répéteront tant que le compteur n’aura pas parcouru l’ensemble des valeurs données.
bannière attention

Attention

Il ne faut pas oublier les deux-points à la fin de la première ligne.
Il faut faire attention à bien indenter les lignes suivantes.

bannière exemple

Exemple

Nous souhaitons afficher les nombres de 00 à 44. Nous allons donc opérer de la manière suivante.

  • Nous assignons à une variable liste les valeurs qui nous intéressent :

liste = [0, 1, 2, 3, 4]

  • Nous écrivons l’en-tête de notre boucle, avec la variable i qui parcourra la liste liste :

for i in liste:

  • Nous lui demandons, à chaque fois, d’afficher la valeur de i , sans oublier l’indentation :

print ("i =", i)

  • Le programme complet est donc :

liste = [0, 1, 2, 3, 4]
for i in liste :

print ("i =", i)

  • Le programme nous renvoie :

i = 0
i = 1
i = 2
i = 3
i = 4

bannière astuce

Astuce

Nous pouvons aussi utiliser la fonction range (m,n) qui parcourt les nombres entiers en partant de m, jusqu’à n-1.

  • Si nous n’indiquons pas m , la fonction range partira de 00.
bannière exemple

Exemple

Dans notre exemple, la boucle devient alors :

for i in range(5):

print ("i =", i)

Boucle while\text{while}

La syntaxe d’une boucle while est la suivante :

while condition :

Suite d’actions à réaliser

  • À while est associée une condition.
  • La boucle sera interrompue dès que cette condition ne sera plus remplie.
  • Après cette ligne, nous indiquons la suite d’actions à opérer.
  • Ces actions se répéteront tant que la condition sera vraie.
bannière attention

Attention

Il ne faut pas oublier les deux-points à la fin de la première ligne.
Il faut faire attention à bien indenter les lignes suivantes.

bannière exemple

Exemple

Nous nous intéressons à une suite géométrique dont nous connaissons le premier terme et la raison.
Et nous souhaitons programmer une fonction qui renvoie tous ses termes inférieurs ou égaux à un nombre donné.

  • Nous définissons la fonction qui aura pour paramètres le premier terme et la raison de la suite, ainsi que le maximum qui nous intéresse :

def termesGeo(terme, raison, max) :

  • Nous écrivons la condition de notre boucle while qui est de continuer tant que terme est inférieur ou égal à max :

while terme <= max :

  • Nous affichons la valeur de terme puis nous assignons à la même variable la valeur du terme suivant :

print (terme)

terme = terme * raison

  • Nous faisons appel à notre fonction avec une suite géométrique de premier terme égal à 11 et de raison 33, pour un maximum égal à 3030.

termesGeo(1, 3, 30)

  • Le programme complet est donc :

def termesGeo(terme, raison, max) :

while terme <= max :

print (terme)

terme = terme * raison

termesGeo(1, 3, 30)

  • Le programme nous renvoie :

1
3
9
27