Boucle bornée☘
De manière générale, la boucle « for
» s'utilise lorsqu'on connaît à l'avance le nombre de répétitions à effectuer dans un programme.
En Python, la syntaxe de la boucle « Pour » est un peu particulière. Elle s'écrit sous la forme :
1 2 3 4 |
|
Une « séquence » peut être :
- générée par un itérateur ;
- une chaîne de caractères (
str
) ; - une liste de nombres ;
- etc...
Valeurs générées par un itérateur☘
La fonction range()
dans une boucle for
permet à une variable de prendre successivement des valeurs entières selon le principe suivant :
A savoir
a
, b
et p
sont des variables de type int
.
-
range(a, b)
génère les entiersa
,a+1
,a+2
, ...,b-1
. -
range(b)
est une abréviation pourrange(0, b)
. -
range(a, b, p)
génère les entiersa
,a+p
,a+2*p
,a+3*p
, ...,a+k*p
, oùa+k*p
est la dernière valeur s'écrivant sous cette forme tout en restant strictement inférieure àb
.
Exemples☘
-
Lister les valeurs successives prisent par la variable
k
avec l'instruction suivante :for k in range(2, 8)
Une solution
Les valeurs successives prises par la variable
k
sont :
2, 3, 4, 5, 6 puis 7 -
Lister les valeurs successives prisent par la variable
k
avec l'instruction suivante :for k in range(5, 25, 4)
Une solution
Les valeurs successives prises par la variable
k
sont :
5, 9, 13, 17 puis 21. 25 n'est pas atteint puisqu'il représente la borne supérieure (exclue) de l'intervalle généré. -
La variable
k
prend successivement pour valeurs : 7, 10, 13, 16, 19.
Donner une instruction utilisant la fonctionrange()
permettant de générer cette liste d'entiers.Une solution
Trois solutions sont possibles :
oufor k in range(7, 20, 3)
oufor k in range(7, 21, 3)
mais pasfor k in range(7, 22, 3)
qui génère la liste : 7, 10, 13, 16, 19 puis 22for k in range(7, 23, 3)
Notion d'accumulateur☘
Un accumulateur est une variable ayant une valeur initiale et à laquelle on ajoute (ou multplie par) une valeur à chaque répétition des instructions d'une boucle.
1 2 3 4 5 |
|
Exemple☘
Complétez la définition de la fonction produit()
qui prend pour paramètre un entier naturel n
et qui renvoie le produit P
des entiers de 1
à n
: P = 1 + 2 + ... + n
.
1 2 3 4 5 |
|
Une solution
Question importante : pourquoi faut-il initialiser P
avec la valeur 1
?
1 2 3 4 5 6 7 8 9 |
|