Contenu principal
Chapitre 4 · La boucle for › Leçon 2 sur 9

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. 1

    Lorsqu'il y a deux arguments a et b, alors range(a,b) correspond à la séquence d'entiers allant de a jusqu'à b-1 inclus. Par exemple range(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 inclus

    for i in range(2, 8):
        print(i)
  2. 2

    Lorsque la séquence de nombres commence à 0, un seul argument suffit. Donc range(0,10) et range(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. 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. 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)

Chargement...

Collecte des fichiers...

>>>