Willekeurig getal tussen 0 en 1 in python

Ik wil een willekeurig getal tussen 0 en 1, zoals 0.3452. Ik gebruikte random.randrange(0, 1) maar het is altijd 0 voor mij. Wat moet ik doen?

Oplossing

U kunt random.uniform gebruiken

import random
random.uniform(0, 1)
Commentaren (4)

random.random()` doet precies dat

>>> 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

Als je echt willekeurige getallen wilt, en het bereik [0, 1] wilt bestrijken:


>>> import os
>>> int.from_bytes(os.urandom(8), byteorder="big") / ((1 
Commentaren (3)

Ik wil een willekeurig nummer tussen 0 en 1, zoals 0.3452

random.random() is waar je naar op zoek bent:

Vanuit python docs: random.random() Geeft het volgende willekeurige drijvende komma getal in het bereik [0.0, 1.0].


En, trouwens, Waarom werkte je poging niet? :

Je poging was: random.randrange(0, 1)

Van python docs: random.randrange() Geeft een willekeurig gekozen element uit range(start, stop, stap). Dit is gelijkwaardig aan choice(range(start, stop, stap)), maar bouwt niet echt een range object.

Dus, wat je hier doet, met random.randrange(a,b) is het kiezen van een willekeurig element uit range(a,b); in jouw geval, uit range(0,1), maar, raad eens!: het enige element in range(0,1), is 0, dus, het enige element dat je kunt kiezen uit range(0,1), is 0; dat'is waarom je altijd 0 terugkreeg.

Commentaren (0)