# Random number between 0 and 1 in python

## Random number between 0 and 1 in python

You can use `random.uniform`

```
import random
random.uniform(0, 1)
```

`random.random()`

does exactly that

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

If you want *really* random numbers, and to cover the range [0, 1]:

```
>>> import os
>>> int.from_bytes(os.urandom(8), byteorder=big) / ((1 << 64) - 1)
0.7409674234050893
```

#### Random number between 0 and 1 in python

I want a random number between 0 and 1, like 0.3452

`random.random()`

is what you are looking for:

From python docs:

random.random() Return the next random floating point number in the

range [0.0, 1.0).

And, btw, ** Why your try didnt work?**:

Your try was: `random.randrange(0, 1)`

From python docs:

random.randrange() 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.

So, what you are doing here, with `random.randrange(a,b)`

is choosing a random element from `range(a,b)`

; in your case, from `range(0,1)`

, but, guess what!: the only element in `range(0,1)`

, is `0`

, so, the only element you can choose from `range(0,1)`

, is `0`

; thats *why* you were always getting `0`

back.