Случайное число между 0 и 1 в Python

Я хочу, чтобы случайное число между 0 и 1, Как 0.3452. Я воспользовался случайным.randrange(0, 1)`, но это всегда 0 для меня. Что я должен делать?

Комментарии к вопросу (2)
Решение

Вы можете использовать случайный.формы

import random
random.uniform(0, 1)
Комментарии (4)

случайная.случайный() делает именно это

>>> 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 и 1, Как 0.3452

`случайная.случайный () - это то, что вы ищете:

из питона документы: случайное.случайный() возвращает следующее случайное число с плавающей запятой в > в диапазоне [0.0, 1.0).


И, кстати, , почему вы не'т работу?:

Ваша попытка была: случайный.randrange(0, 1)

из питона документы: случайное.randrange() возвращает случайно выбранный элемент из диапазона(запуск, остановка, шаг). Это эквивалентно выбору(диапазона(запуск, остановка, шаг)), но на самом деле не построить объект Range.

Итак, что вы делаете здесь, со случайными.randrange(а,б) выбирает случайный элемент из диапазона(а,б); в вашем случае, из диапазона(0,1), но, думаю, что!: единственный элемент в диапазоне(0,1), является 0, таким образом, единственный элемент, который вы можете выбрать из диапазона(0,1), это0;, что'ы *почему* вы всегда получаете0` обратно.

Комментарии (0)

вы можете использовать и NumPy.случайная модуль, вы можете получить массив случайных чисел в форму ваш выбор вы хотите

>>> 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
Комментарии (0)

случайные.randrange(0,2) это работает!

Комментарии (2)

РТМ

Документы для модуля Python случайных:

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.

Это объясняет, почему он только дает вам 0, Не'т его. диапазона(0,1) "есть" [0]. Его выбирают из списка, состоящего из только это значение.

Также из этих документов:

random.random()    
    Return the next random floating point number in the range [0.0, 1.0).

Но если включить включает в себя тег является намеренным, вы можете генерировать много случайных плавает в этом диапазоне с помощью одного вызова с помощью НП.функция случайный`.

Комментарии (0)

Мой вариант, который я нахожу, чтобы быть более гибким.

str_Key           = ""
str_FullKey       = "" 
str_CharacterPool = "01234ABCDEFfghij~-)"
for int_I in range(64): 
    str_Key = random.choice(str_CharacterPool) 
    str_FullKey = str_FullKey + str_Key 
Комментарии (0)