Boucle for

En programmation, une boucle est une structure répétant plusieurs fois (ou indéfiniment) un bloc d'instructions.

La boucle for s'utilise lors que le nombre d'itérations est connu à l'avance. Il s'agit d'une boucle bornée.

Parcours d'une liste

for <variable> in <liste>:
    <bloc instructions>

Le parcours séquentiel d'une liste se fait suivant la structure précédente.

for i in [1, 2, 3]:
   print(i)
>>> %Run
1
2
3
  • La variable i prend itérativement les valeurs 1, 2 et 3 dans la liste [1, 2, 3].

  • Le nombre d'itérations d'une boucle de type for est toujours connu à l'avance !

Fonction range()

La fonction range() est pratique pour générer automatiquement une liste de parcours.

>>> list(range(5))
[0, 1, 2, 3, 4]
  • La fonction range(n) renvoie un itérateur sur une suite de valeurs entières entre 0 à n (non incluse).

Avertissement

Dans cet exemple, la fonction list() convertit l'itérateur renvoyé par la fonction range() en une liste pour une meilleure compréhension de son fonctionnement. Par la suite, la fonction list() ne sera pas utile !

Structure for i in range(n)

C'est la structure de la boucle for la plus souvent rencontrée en langage Python.

for i in range(5):
   print(i)
>>> %Run
0
1
2
3
4
  • La fonction range(n) facilite la création d'une boucle for en renvoyant un itérateur de 0 à n (non inclus).

  • La variable i (entier) est un compteur et prend la valeur suivante de l'itérateur à chaque itération de la boucle.

  • La boucle for effectue une dernière itération lorsque i prend la dernière valeur de l'itérateur c.a.d. n-1. Puis la boucle s'arrête et le programme peut continuer.

  • Au final, cette boucle réalise bien n itérations.

Autres variantes de la fonction range()

Avec la forme range(a, b)

for i in range(2, 5):
   print(i)
>>> %Run
2
3
4
  • a est le premier entier.

  • b est le dernier entier non inclus.

Avec la forme range(a, b, p)

for i in range(2,9,3):
   print(i)
>>> %Run
2
5
8
  • a est le premier entier.

  • b est le dernier entier non inclus.

  • p est le pas d'incrémentation.

Construction d'une liste en compréhension

En Python, il est possible de construire une liste en compréhension, c.a.d. à partir d'une boucle for sur une seule ligne avec la syntaxe ci-dessous.

[<expression_element> for i in range(n)]
  • <expression_element> est une expression qui définit le calcul de l'élément en cours de la liste à chaque itération de la boucle for.

  • Le compteur i est utilisable dans cette expression.

>>> l = [2*i+1 for i in range(5)]
>>> l
[1, 3, 5, 7, 9]

Exemples au programme de physique-chimie

Mouvement d'un point : vecteur vitesse (classe de seconde)

Mouvement d'un point : vecteur variation vitesse (classe de première)

Titrage - Evolution des quantités de matière (classe de terminale)