Je veux un nombre aléatoire compris entre 0 et 1, comme 0.3452. J'ai utilisé random.randrange(0, 1)
mais il est toujours égal à 0 pour moi. Que devrais-je faire?
Vous pouvez utiliser random.uniform
import random
random.uniform(0, 1)
random.random()
fait exactement cela
>>> import random
>>> for i in range(10):
... print(random.random())
...
0.908047338626
0.0199900075962
0.904058545833
0.321508119045
0.657086320195
0.714084413092
0.315924955063
0.696965958019
0.93824013683
0.484207425759
Si vous voulez vraiment nombres aléatoires et couvrir la plage [0, 1]:
>>> import os
>>> int.from_bytes(os.urandom(8), byteorder="big") / ((1 << 64) - 1)
0.7409674234050893
Vous pouvez essayer avec random.random()
random.random()
Renvoie le prochain nombre à virgule flottante aléatoire dans la plage [0.0, 1.0).
random.randrange (0,2) cela fonctionne!
vous pouvez utiliser le module numpy.random , vous pouvez obtenir un tableau de nombres aléatoires sous la forme de votre choix
>>> import numpy as np
>>> np.random.random(1)[0]
0.17425892129128229
>>> np.random.random((3,2))
array([[ 0.7978787 , 0.9784473 ],
[ 0.49214277, 0.06749958],
[ 0.12944254, 0.80929816]])
>>> np.random.random((3,1))
array([[ 0.86725993],
[ 0.36869585],
[ 0.2601249 ]])
>>> np.random.random((4,1))
array([[ 0.87161403],
[ 0.41976921],
[ 0.35714702],
[ 0.31166808]])
>>> np.random.random_sample()
0.47108547995356098
RTM
Dans la documentation du module Python random
:
Functions for integers:
random.randrange(stop)
random.randrange(start, stop[, step])
Return a randomly selected element from range(start, stop, step).
This is equivalent to choice(range(start, stop, step)), but doesn’t
actually build a range object.
Cela explique pourquoi il ne vous donne que 0, n'est-ce pas? range(0,1)
est [0]
. C'est choisir parmi une liste composée uniquement de cette valeur.
Aussi de ces docs:
random.random()
Return the next random floating point number in the range [0.0, 1.0).
Mais si votre inclusion de la balise numpy
est intentionnelle, vous pouvez générer de nombreux flottants aléatoires dans cette plage avec un seul appel à l'aide d'une fonction np.random
.