Previous Up Next

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]

Previous Up Next