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