Aller au contenu

Autour de range⚓︎

En Python, l'instruction range permet de parcourir des nombres entiers. Cette fonction renvoie un objet qui n'est pas une liste et génère les nombres au fur et à mesure de leur utilisation.

Elle peut être utilisée avec un, deux ou trois paramètres.

Quelle que soit la méthode utilisée, ces paramètres sont toujours des nombres entiers (positifs ou négatifs).

Un paramètre : range(b)⚓︎

L'appel range(b) permet de parcourir les entiers de 0 (inclus) à b (exclu).

🐍 Console Python
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> list(range(6))
[0, 1, 2, 3, 4, 5]

On note que dans chaque appel, la valeur de b est bien exclue du parcours.

Remarque

La conversion en une liste Python (avec list(range(5))) permet de visualiser les nombres parcourus par range.

Deux paramètres : range(a, b)⚓︎

L'appel range(a, b) permet de parcourir les entiers de a (inclus) à b (exclu).

🐍 Console Python
>>> list(range(0, 5))
[0, 1, 2, 3, 4]
>>> list(range(-5, 2))
[-5, -4, -3, -2, -1, 0, 1]

Remarque

Dans l'utilisation avec un seul paramètre, Python utilise par défaut la valeur 0 pour a.

Trois paramètres : range(a, b, c)⚓︎

L'appel range(a, b, c) permet de parcourir les entiers de a (inclus) à b (exclu) avec un pas (un écart) de c.

Ainsi, range(3, 18, 5) permet de parcourir successivement les nombres 3, 8 et 13. En effet, :

  • 3 est la valeur de départ (incluse),
  • 8 la suit. En effet le pas vaut 5 et 3 + 5 égale 8,
  • 13 est égal à 8 + 5.

Le 18 (égal à 13 + 5) est bien exclu.

🐍 Console Python
>>> list(range(3, 18, 5))
[3, 8, 13]
>>> list(range(3, 19, 5))
[3, 8, 13, 18]
>>> list(range(20, 15, -1))
[20, 19, 18, 17, 16]

Remarque

Dans les utilisations avec un ou deux paramètres, Python utilise par défaut la valeur 1 pour c.

Compléter le code ci-dessous.

###
# UN SEUL PARAMETRE #bksl-nlbksl-nl# Les entiers de 0 (inclus) à 11 (exclu)bksl-nllistepy-und1 = list(range(11))bksl-nlbksl-nl# Les entiers de 0 (inclus) à 20 (exclu)bksl-nllistepy-und2 = list(range(20))bksl-nlbksl-nl# Les entiers de 0 (inclus) à 20 (inclus)bksl-nllistepy-und3 = list(range(21))bksl-nlbksl-nl# DEUX PARAMETRES #bksl-nlbksl-nl# Les entiers de 3 (inclus) à 10 (exclu)bksl-nllistepy-und4 = list(range(3, 10))bksl-nlbksl-nl# Les entiers de 12 (inclus) à 20 (inclus)bksl-nllistepy-und5 = list(range(12, 21))bksl-nlbksl-nl# Les entiers de -10 (inclus) à 1 (exclu)bksl-nllistepy-und6 = list(range(-10, 1))bksl-nlbksl-nl# Les entiers de -10 (inclus) à 1 (inclus)bksl-nllistepy-und7 = list(range(-10, 2))bksl-nlbksl-nl# TROIS PARAMETRES #bksl-nlbksl-nl# Les entiers de 20 (inclus) à 0 (exclu)bksl-nllistepy-und8 = list(range(20, -1, -1))bksl-nlbksl-nl# Les entiers de 500 (inclus) à 200 (exclu)bksl-nllistepy-und9 = list(range(500, 200, -1))bksl-nlbksl-nl# Les entiers de 10 (inclus) à -10 (exclu)bksl-nllistepy-und10 = list(range(10, -10, -1))bksl-nlbksl-nl# Les entiers de 25 (inclus) à -25 (inclus)bksl-nllistepy-und11 = list(range(25, -26, -1))bksl-nlbksl-nl# Les pairs de 1 (inclus) à 100 (exclu)bksl-nllistepy-und12 = list(range(1, 101, 2))bksl-nlbksl-nl# Les multiples de 3 de 0 (inclus) à 301 (exclu)bksl-nllistepy-und13 = list(range(1, 101, 2))bksl-nlbksl-nl# Les multiples de 7 de 0 (inclus) à 994 (inclus)bksl-nllistepy-und14 = list(range(1, 101, 2))bksl-nlbksl-nl# Les pairs de -100 (inclus) à 100 (exclu)bksl-nllistepy-und15 = list(range(-100, 101, 1))bksl-nlbksl-nl# Les multiples de 3 de 300 (inclus) à 102 (exclu)bksl-nllistepy-und16 = list(range(300, 101, -3))bksl-nlbksl-nl# Les multiples de 13 de 3445 (inclus) à -559 (inclus)bksl-nllistepy-und17 = list(range(300, 101, -3))bksl-nlbksl-nl 5/5

# UN SEUL PARAMETRE #bksl-nlbksl-nl# Les entiers de 0 (inclus) à 11 (exclu)bksl-nllistepy-und1 = list(range(...))bksl-nlbksl-nl# Les entiers de 0 (inclus) à 20 (exclu)bksl-nllistepy-und2 = list(range(...))bksl-nlbksl-nl# Les entiers de 0 (inclus) à 20 (inclus)bksl-nllistepy-und3 = list(range(...))bksl-nlbksl-nl# DEUX PARAMETRES #bksl-nlbksl-nl# Les entiers de 3 (inclus) à 10 (exclu)bksl-nllistepy-und4 = list(range(..., ...))bksl-nlbksl-nl# Les entiers de 12 (inclus) à 20 (inclus)bksl-nllistepy-und5 = list(range(..., ...))bksl-nlbksl-nl# Les entiers de -10 (inclus) à 1 (exclu)bksl-nllistepy-und6 = list(range(..., ...))bksl-nlbksl-nl# Les entiers de -10 (inclus) à 1 (inclus)bksl-nllistepy-und7 = list(range(..., ...))bksl-nlbksl-nl# TROIS PARAMETRES #bksl-nlbksl-nl# Les entiers de 20 (inclus) à 0 (exclu)bksl-nllistepy-und8 = list(range(..., ..., ...))bksl-nlbksl-nl# Les entiers de 500 (inclus) à 200 (exclu)bksl-nllistepy-und9 = list(range(..., ..., ...))bksl-nlbksl-nl# Les entiers de 10 (inclus) à -10 (exclu)bksl-nllistepy-und10 = list(range(..., ..., ...))bksl-nlbksl-nl# Les entiers de 25 (inclus) à -25 (inclus)bksl-nllistepy-und11 = list(range(..., ..., ...))bksl-nlbksl-nl# Les pairs de 1 (inclus) à 100 (exclu)bksl-nllistepy-und12 = list(range(..., ..., ...))bksl-nlbksl-nl# Les multiples de 3 de 0 (inclus) à 301 (exclu)bksl-nllistepy-und13 = list(range(..., ..., ...))bksl-nlbksl-nl# Les multiples de 7 de 0 (inclus) à 994 (inclus)bksl-nllistepy-und14 = list(range(..., ..., ...))bksl-nlbksl-nl# Les pairs de -100 (inclus) à 100 (exclu)bksl-nllistepy-und15 = list(range(..., ..., ...))bksl-nlbksl-nl# Les multiples de 3 de 300 (inclus) à 102 (exclu)bksl-nllistepy-und16 = list(range(..., ..., ...))bksl-nlbksl-nl# Les multiples de 13 de 3445 (inclus) à -559 (inclus)bksl-nllistepy-und17 = list(range(..., ..., ...))bksl-nlbksl-nl# UN SEUL PARAMETRE #bksl-nlbksl-nl# Les entiers de 0 (inclus) à 11 (exclu)bksl-nllistepy-und1 = list(range(11))bksl-nlbksl-nl# Les entiers de 0 (inclus) à 20 (exclu)bksl-nllistepy-und2 = list(range(20))bksl-nlbksl-nl# Les entiers de 0 (inclus) à 20 (inclus)bksl-nllistepy-und3 = list(range(21))bksl-nlbksl-nl# DEUX PARAMETRES #bksl-nlbksl-nl# Les entiers de 3 (inclus) à 10 (exclu)bksl-nllistepy-und4 = list(range(3, 10))bksl-nlbksl-nl# Les entiers de 12 (inclus) à 20 (inclus)bksl-nllistepy-und5 = list(range(12, 21))bksl-nlbksl-nl# Les entiers de -10 (inclus) à 1 (exclu)bksl-nllistepy-und6 = list(range(-10, 1))bksl-nlbksl-nl# Les entiers de -10 (inclus) à 1 (inclus)bksl-nllistepy-und7 = list(range(-10, 2))bksl-nlbksl-nl# TROIS PARAMETRES #bksl-nlbksl-nl# Les entiers de 20 (inclus) à 0 (exclu)bksl-nllistepy-und8 = list(range(20, -1, -1))bksl-nlbksl-nl# Les entiers de 500 (inclus) à 200 (exclu)bksl-nllistepy-und9 = list(range(500, 200, -1))bksl-nlbksl-nl# Les entiers de 10 (inclus) à -10 (exclu)bksl-nllistepy-und10 = list(range(10, -10, -1))bksl-nlbksl-nl# Les entiers de 25 (inclus) à -25 (inclus)bksl-nllistepy-und11 = list(range(25, -26, -1))bksl-nlbksl-nl# Les pairs de 1 (inclus) à 100 (exclu)bksl-nllistepy-und12 = list(range(1, 101, 2))bksl-nlbksl-nl# Les multiples de 3 de 0 (inclus) à 301 (exclu)bksl-nllistepy-und13 = list(range(1, 101, 2))bksl-nlbksl-nl# Les multiples de 7 de 0 (inclus) à 994 (inclus)bksl-nllistepy-und14 = list(range(1, 101, 2))bksl-nlbksl-nl# Les pairs de -100 (inclus) à 100 (exclu)bksl-nllistepy-und15 = list(range(-100, 101, 1))bksl-nlbksl-nl# Les multiples de 3 de 300 (inclus) à 102 (exclu)bksl-nllistepy-und16 = list(range(300, 101, -3))bksl-nlbksl-nl# Les multiples de 13 de 3445 (inclus) à -559 (inclus)bksl-nllistepy-und17 = list(range(300, 101, -3))bksl-nlbksl-nl

A

L'instruction range permet en Python de générer les nombres au fur et à mesure, sans les stocker.

La conversion en list à l'aide de list(range(1, 5)) permet donc de sauvegarder et visualiser l'ensemble des valeurs parcourues.

Une autre façon de générer ces listes de nombres, plus proche des usages Python est d'utiliser les listes en compréhension.

Ainsi, les instructions list(range(1, 5)) et [k for k in range(1, 5))] renvoient l'une et l'autre [1, 2, 3, 4].

Z