La fonction range
Révisons la syntaxe d'une boucle for en Python : il y a deux mots clés à utiliser,
for
et in
. Il y a également une variable i
et la fonction
range
. Je t'ai remis un exemple dans l'éditeur.
La fonction range
est une fonction prédéfinie comme print
: elle est
donc directement utilisable, sans import depuis un module. Elle peut prendre un, deux ou trois
arguments !
Dans cette leçon je t'explique en détail comment utiliser la fonction
range
.
- 1
Lorsqu'il y a deux arguments
a
etb
, alorsrange(a,b)
correspond à la séquence d'entiers allant dea
jusqu'àb-1
inclus. Par exemplerange(0,10)
correspond à la séquence de nombres de 0 à 9.Modifie les arguments de la fonction
range
pour afficher tous les nombres de 2 à 7 inclus.Solution
Le deuxième argument de
range
doit être 8 pour avoir une séquence jusqu'à 7 inclusfor i in range(2, 8): print(i)
- 2
Lorsque la séquence de nombres commence à 0, un seul argument suffit. Donc
range(0,10)
etrange(10)
sont équivalents.Modifie la fonction
range
pour afficher tous les nombres de 0 à 10 inclus en n'utilisant qu'un seul argument.Solution
Pour aller jusqu'à 10 inclus l'argument de
range
doit être 11.for i in range(11): print(i)
- 3
Un troisième argument est possible, mais pas obligatoire. Il indique l'écart entre les termes consécutifs de la séquence.
Par exemple
range(4,10,2)
correspond à la séquence de nombres de 4, 6, 8. En effet le troisième argument est 2 ce qui correspond à l'écart entre les termes consécutifs de la séquence. Le premier argument est 4, qui correspond au premier terme de la séquence, et le deuxième argument est 10 qui correspond au nombre où la séquence s'arrête et n'est pas inclus.L'écart entre des nombres consécutifs se nomme aussi le pas. Dans l'exemple précédent on a donc un pas de 2.
Modifie les arguments de la fonction
range
pour afficher la séquence de nombres 6, 9, 12, 15, 18.Solution
L'écart entre les termes consécutifs de la séquence est 3. Comme il faut partir de 6 et inclure 18 on peut par exemple écrire
for i in range(6, 21, 3): print(i)
- 4
Il reste un dernier cas de figure : les décomptes. Comment obtenir la séquence de nombres 5, 4, 3, 2, 1, 0 ?
Il nous faut un pas négatif car cette séquence est décroissante. D'ailleurs elle décroît d'une unité à la fois.
Modifie les arguments de la fonction
range
et expérimente jusqu'à obtenir le décompte précédent de 5 à 0 inclus.Solution
Le décompte décroît d'une unité à la fois donc le pas est de -1. La première valeur à afficher est 5, c'est le premier argument de
range
. Pour inclure 0 il faut mettre -1 en deuxième argument car c'est nombre qui viendrait juste après dans la séquence 5, 4, 3, 2, 1, 0.for i in range(5, -1, -1): print(i)