Python Random Module

The random module is a built-in module that allow us to generate random elements.

import random

seed()

The seed method is used to initialize the random number generator.

# Set seed for reproducible random numbers
random.seed(1)
random.random()
0.13436424411240122

Setting the seed to a number will always return the same random number:

random.seed(1)
random.random()
0.13436424411240122
random.seed(1)
random.random()
0.13436424411240122
random.seed(1)
random.random()
0.13436424411240122
random.seed(1)
random.random()
0.13436424411240122
random.seed(1)
random.random()
0.13436424411240122

The default value of the seed method is the current system time, that is why we always get a different number:

# Generate random number without setting seed (uses system time)
random.random()
0.8474337369372327
random.random()
0.763774618976614
random.random()
0.2550690257394217

randint()

random.randint(start: int, stop: int)

This method returns a random number between a given start and stop parameters:

random.randint(1, 5)
3
random.randint(1, 5)
2
random.randint(1, 5)
5
random.randint(1, 5)
1
random.randint(1, 5)
3
random.randint(1, 5)
1

choice()

The choice method return a randomly selected element from an iterable, like a list, set or str:

random.choice([1, 2, 3, 4])
1
random.choice([1, 2, 3, 4])
2
random.choice([1, 2, 3, 4])
4
random.choice([1, 2, 3, 4])
4

shuffle()

The shuffle method takes in an iterable and shuffle it:

my_list = [1, 2, 3, 4]

# Shuffle list in place
random.shuffle(my_list)
my_list
[1, 4, 3, 2]
random.shuffle(my_list)
my_list
[2, 4, 3, 1]
random.shuffle(my_list)
my_list
[4, 2, 3, 1]

sample()

random.sample(iterable, k: int)

sample returns a list with a random selection from an iterable. The number of elements returned is equal to the k parameter:

# Randomly sample k elements from the list
random.sample([1, 2, 3, 4], 1)
[3]
random.sample([1, 2, 3, 4], 2)
[3, 4]
random.sample([1, 2, 3, 4], 3)
[4, 3, 2]
random.sample([1, 2, 3, 4], 4)
[1, 2, 4, 3]

random()

The random method returns a random floating point number between 0.0 and 1.0:

random.random()
0.4143139993007743
random.random()
0.17300740157905092
random.random()
0.548798761388153
random.random()
0.7030407620656315

uniform()

the uniform method is similar to randint, but return a floating point number:

random.uniform(1, 5)
3.697943322009309
random.uniform(1, 5)
2.498812082006561
random.uniform(1, 5)
2.7558465201782525
random.uniform(1, 5)
3.0337059529999273