Faire une liste d’entiers : range

### 6.42.41 Faire une liste d’entiers : range

range a 1, 2 ou 3 arguments :

1. un entier n
   range(n) renvoie la liste [0,..,n-1]
2. 2 entiers a et b
   range(a,b) renvoie la liste [a,a+1,..,b[
3. 3 entiers a b et p
   range(a,b,p) renvoie la liste [a,a+p,a+2p,..,b[
   p est le pas qui vaut par défaut 1.

On tape :

range(5)

On obtient :

[0,1,2,3,4]

On tape :

range(4,10)

On obtient :

[4,5,6,7,8,9]

On tape :

range(10,4,-1)

On obtient :

[10,9,8,7,8,5]

On tape :

range(4,13,2)

On obtient :

[4,6,8,10,12]

Remarques : pour faire la liste des valeurs d’une expression f(k) lorsque k est un entier qui vérifie une condition.

1. On peut faire la liste des valeurs d’une expression dépendant d’un paramètre, par exemple k, lorsque k est un entier qui parcourt une liste définie par range.
   On tape :
   [k`^`2+k for k in range(10)]
   On obtient :
   [0,2,6,12,20,30,42,56,72,90]
   On tape :
   [k`^`2+k for k in range(4,10)]
   On obtient :
   [20,30,42,56,72,90]
   On tape :
   [k`^`2+k for k in range(0,10,2)]
   On obtient :
   [0,6,20,42,72]
2. On peut faire la liste des valeurs d’une expression dépendant d’un paramètre, par exemple k, lorsque k est un entier qui parcourt une liste définie par range et qui vérifie une condition.
   On tape :
   [k for k in range(10) if isprime(k)]
   On obtient :
   [2,3,5,7]
   On tape :
   [k for k in range(4,10) if isprime(k)]
   On obtient :
   [5,7]]
   On tape :
   [k for k in range(1,10,2) if isprime(k)]
   On obtient :
   [3,5,7]
3. On peut faire la liste des valeurs d’une expression dépendant d’un paramètre, par exemple k, lorsque k est un entier qui parcourt une liste définie par range et qui vérifie une condition.
   Par exemple on cherche la liste des valeurs de k2+k lorsque k est un nombre premier de l’intervalle [a,b[.
   On tape pour a=0 et b=10 :
   [k`^`2+k for k in range(10) if isprime(k)]
   On obtient :
   [6,12,30,56]
   On tape pour a=4 et b=10 :
   [k`^`2+k for k in range(4,10) if isprime(k)]
   On obtient :
   [30,56]]
   On tape pour a=1 et b=10 et k varie avec un pas de 2 :
   [k`^`2+k for k in range(1,10,2) if isprime(k)]
   On obtient :
   [12,30,56]
   On tape pour a=0 et b=10 et k varie avec un pas de 2 :
   [k`^`2+k for k in range(0,10,2) if isprime(k)]
   On obtient (puisque les nombres pairs ne sont pas premiers !):
   [6]