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 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 bouclefor
en 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
for
effectue une dernière itération lorsquei
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 bouclefor
.Le compteur
i
est 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)