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
iprend itérativement les valeurs 1, 2 et 3 dans la liste[1, 2, 3].Le nombre d'itérations d'une boucle de type
forest 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 entre0à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 boucleforen renvoyant un itérateur de0à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
foreffectue une dernière itération lorsqueiprend 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
nité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
aest le premier entier.best 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
aest le premier entier.best le dernier entier non inclus.pest 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 bouclefor.Le compteur
iest utilisable dans cette expression.
>>> l = [2*i+1 for i in range(5)]
>>> l
[1, 3, 5, 7, 9]
Exercices d'application
Exercice 4 (vitesse d'une balle de tennis)
Exercice 5 (énergies d'une balle de tennis)
Exercice 6 (énergies d'une balle de tennis par compréhension de liste)
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)