Dec. 24, 2012

How to use the Random Module in Python


In this post, I would like to describe the usage of the random module in Python.

The random module provides access to functions that support many operations.

Perhaps the most important thing is that it allows you to generate random numbers.

When to use it?

We want the computer to pick a random number in a given range

Pick a random element from a list, pick a random card from a deck, flip a coin

When making your password database more secure or powering a random page feature
of your website. 

Random functions

The Random module contains some very useful functions


If we wanted a random integer, we can use the randint function

Randint accepts two parameters: a lowest and a highest number.

Generate integers between 1,5. The first value should be less than the second.
import random
print random.randint(0, 5)
This will output either 1, 2, 3, 4 or 5. 


If you want a larger number, you can multiply it. 

For example, a random number between 0 and 100:
import random
random.random() * 100


Generate a random value from the sequence sequence.

random.choice( ['red', 'black', 'green'] ).

The choice function can often be used for choosing a random element from a list.
import random
myList = [2, 109, False, 10, "Lorem", 482, "Ipsum"]


The shuffle function, shuffles the elements in list in place, so they are in a
random order.


Example taken from this post on Stackoverflow
from random import shuffle
x = [[i] for i in range(10)]
# print x  gives  [[9], [2], [7], [0], [4], [5], [3], [1], [8], [6]]
# of course your results will vary


Generate a randomly selected element from range(start, stop, step)

random.randrange(start, stop[, step])
import random
for i in range(3):
    print random.randrange(0, 101, 5)

Code Example

Let's see this example (copied from Doug Hellmann PYMOTW)
import random
import itertools

outcomes = { 'heads':0,
sides = outcomes.keys()

for i in range(10000):
    outcomes[ random.choice(sides) ] += 1

print 'Heads:', outcomes['heads']
print 'Tails:', outcomes['tails']
There are only two outcomes allowed, so rather than use numbers and convert them,
the words “heads” and “tails” are used with choice(). 

The results are tabulated in a dictionary using the outcome names as keys.
$ python

Heads: 4984
Tails: 5016
More information

Recommended Python Training – DataCamp

For Python training, our top recommendation is DataCamp.

Datacamp provides online interactive courses that combine interactive coding challenges with videos from top instructors in the field.

Datacamp has beginner to advanced Python training that programmers of all levels benefit from.


Read more about:
Disclosure of Material Connection: Some of the links in the post above are “affiliate links.” This means if you click on the link and purchase the item, I will receive an affiliate commission. Regardless, only recommend products or services that we try personally and believe will add value to our readers.