Zufallszahl zwischen 0 und 1 in Python

Ich möchte eine Zufallszahl zwischen 0 und 1, etwa 0,3452. Ich habe random.randrange(0, 1) verwendet, aber bei mir ist es immer 0. Was sollte ich tun?

Lösung

Sie können random.uniform verwenden

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

Random.random() macht genau das

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

Wenn Sie wirklich zufällige Zahlen wollen und den Bereich [0, 1] abdecken wollen:


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

Ich möchte eine Zufallszahl zwischen 0 und 1, etwa 0,3452

Random.random() ist das, wonach Sie suchen:

Aus den Python-Dokumenten: random.random() Liefert die nächste zufällige Fließkommazahl im Bereich [0.0, 1.0).


Und, btw, Warum hat dein Versuch nicht funktioniert?:

Dein Versuch war: random.randrange(0, 1)

Aus den Python-Dokumenten:

random.randrange() Gibt ein zufällig ausgewähltes Element aus range(start, stop, step) zurück. Dies ist äquivalent zu choice(range(start, stop, step)), baut aber kein Range-Objekt auf.

Was Sie hier also mit random.randrange(a,b) tun, ist, ein zufälliges Element aus bereich(a,b) auszuwählen; in Ihrem Fall aus bereich(0,1), aber raten Sie mal: das einzige Element in bereich(0,1) ist 0, also ist das einzige Element, das Sie aus bereich(0,1) auswählen können, 0; deshalb wird immer 0 zurückgegeben.

Kommentare (0)