pythonで0と1の間の乱数

0.3452のような、0から1の間の乱数が欲しいです。私はrandom.randrange(0, 1)を使いましたが、いつも0になってしまいます。どうすればいいですか?

ソリューション

random.uniform` を使うことができます。

import random
random.uniform(0, 1)
解説 (4)

random.random() はまさにそれを行います。

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

本当に乱数が欲しい場合、そして [0, 1] の範囲をカバーしたい場合。


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

0.3452のような0から1の間の乱数が欲しいです。

random.random()`は、あなたが探しているものです。

Pythonのドキュメントより: random.random() 次のランダムな浮動小数点数を返します。 [0.0, 1.0]の範囲で次のランダムな浮動小数点数を返します。


それと、Why your try didn't work?です。

あなたが試したのは、random.randrange(0, 1)です。

pythonのドキュメントより。

random.randrange() range(start, stop, step)からランダムに選択された要素を返します。これは choice(range(start, stop, step)) と同等ですが、実際には range オブジェクトを構築しません。

つまり、random.randrange(a,b)でやっていることは、range(a,b)からランダムな要素を選ぶことです。あなたの場合は、range(0,1)からですが、どうでしょう!:range(0,1)に含まれる唯一の要素は0なので、range(0,1)から選択できる唯一の要素は0です。

解説 (0)