Chaque distribution Python est livrée avec un nombre considérable de modules qui augmentent la portée du langage.
On a déjà parlé des modules math et cmath. On évoquera dans les pages suivantes une petite partie des fonctions et des modules qu’il nous semble utile de connaître.
La documentation de référence se trouve ici : http://docs.python.org/3.3/library/index.html
Toujours pour obtenir de l’aide, une autre possibilité consiste à taper help(’modules’) dans IDLE (pour avoir la liste des modules disponibles), ou help(’random’) si on veut de l’aide, par exemple, sur le module random.
Adresse : http://docs.python.org/3.3/library/random
Utilité : génération de valeurs pseudo-aléatoires
Syntaxe : import random, ou from random import *, ou from random import sample, etc.
Quelques fonctions utiles :
seed(n)seed() |
réinitialise le générateur de nombres aléatoires en utilisant l’entier n. idem mais en utilisant l’horloge du système. |
randrange(a,b,h)randrange(b)randint(a,b) |
un entier aléatoire de [a, b[, avec le pas h (par défaut h = 1). un entier aléatoire de [0, b[. un entier aléatoire de [a, b], donc synonyme de randrange(a,b+1) |
choice(seq) |
un élément au hasard dans la séquence (non vide) seq |
shuffle(seq) |
“rebat” aléatoirement la séquence (non vide) seq (opère sur place) |
sample(pop,k) |
liste de k éléments distincts de pop (ensemble ou séquence) |
random() |
le prochain réel pseudo-aléatoire dans [0, 1[ |
uniform(a,b) |
un réel pseudo-aléatoire dans [a, b] |
gauss(m,σ) |
réel pseudo-aléatoire, distribution gaussienne, moyenne m, écart-type σ |
Voici quelques exemples :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
>>> from random import * # on importe le module random >>> seed(1) # on initialise le générateur de nombres aléatoires >>> [randint(1,6) for k in range(10)] # on simule 10 lancers d'un dé honnête [2, 5, 1, 3, 1, 4, 4, 4, 6, 4] >>> [randint(1,6) for k in range(10)] # on relance le dé encore 10 fois [2, 1, 4, 1, 4, 4, 5, 1, 6, 4] >>> seed(1) # on recale le générateur >>> [randint(1,6) for k in range(10)] # on retrouve les 10 premiers lancers [2, 5, 1, 3, 1, 4, 4, 4, 6, 4] >>> sample(range(0,10),10) # voici une permutation aléatoire de {0, 1, . . . , 9} [4, 3, 1, 2, 0, 5, 9, 6, 8, 7] >>> t = list(range(0,10)) # on forme la liste [0, 1, . . . , 9] >>> shuffle(t); t # on rebat cette liste aléatoirement (sur place) [2, 9, 4, 1, 5, 7, 6, 3, 8, 0] |
Retour à l’accueil du cours Python/Numpy
Sommaire du chapitre 7
- Le module random
- Le module decimal
- Le module fractions
- Le module string
- Le module itertools
- Les modules operator et functools
- Le module time
- La classe Counter du module collections
- La classe deque du module collections
- Le module heapq
- Le module bisect
- Le module copy
- Autres modules et adresses utiles