Easy Tutorial
❮ Python Att List Count Python File Flush ❯

Python random Module

The random module in Python is primarily used for generating random numbers.

The random module implements various pseudo-random number generators for different distributions.

To use the random function, you must first import it:

import random

To view the contents of the random module:

Example

>>> import random
>>> dir(random)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_floor', '_inst', '_log', '_os', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randbytes', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']

Next, we use the random() method to return a random number within the half-open interval [0,1), which includes 0 but excludes 1.

Example

# Import the random module
import random

# Generate a random number
print(random.random())

The output of the above example is:

0.4784904215869241

The seed() method changes the seed of the random number generator, which can be called before invoking other random module functions.

Example

#!/usr/bin/python3
import random

random.seed()
print("Using the default seed to generate a random number:", random.random())
print("Using the default seed to generate a random number:", random.random())

random.seed(10)
print("Using the integer 10 seed to generate a random number:", random.random())
random.seed(10)
print("Using the integer 10 seed to generate a random number:", random.random())

random.seed("hello", 2)
print("Using the string seed to generate a random number:", random.random())

The output of the above example is:

Using the default seed to generate a random number: 0.7908102856355441
Using the default seed to generate a random number: 0.81038961519195
Using the integer 10 seed to generate a random number: 0.5714025946899135
Using the integer 10 seed to generate a random number: 0.5714025946899135
Using the string seed to generate a random number: 0.3537754404730722

random Module Methods

The random module methods are as follows:

Method Description
seed() Initialize the random number generator
getstate() Return an object capturing the generator's current internal state.
setstate() The state should be obtained from a previous call to getstate(), and setstate() restores the generator's internal state to when getstate() was called.
getrandbits(k) Returns a non-negative Python integer with k random bits. This method is provided with the MersenneTwister generator, and some other generators may also provide it as an optional part of the API. Where possible, getrandbits() enables randrange() to handle arbitrarily large ranges.
randrange() Returns a randomly selected element from range(start, stop, step).
randint(a, b) Returns a random integer N such that a <= N <= b.
choice(seq) Returns a random element from the non-empty sequence seq. Raises IndexError if seq is empty.
choices(population, weights=None, *, cum_weights=None, k=1) Returns a list of size k of elements chosen from the population with replacement. Raises IndexError if the population is empty.
shuffle(x[, random]) Shuffles the sequence x in place.
sample(population, k, *, counts=None) Returns a k length list of unique elements chosen from the population sequence or set. Used for random sampling without replacement.
random() Returns the next random floating point number in the range [0.0, 1.0).
uniform() Returns a random floating point number N such that a <= N <= b for a <= b and b <= N <= a for b < a.
triangular(low, high, mode) Returns a random floating point number N such that low <= N <= high and uses the specified mode between these bounds. The low and high bounds default to zero and one. The mode argument defaults to the midpoint between the bounds, yielding a symmetric distribution.
betavariate(alpha, beta) Beta distribution. The condition on the parameters is that alpha > 0 and beta > 0. Returns values between 0 and 1.
expovariate(lambd) Exponential distribution. lambd is 1.0 divided by the desired mean, and it should be non-zero.
gammavariate() Gamma distribution (not the gamma function). The condition on the parameters is that alpha > 0 and beta > 0.
gauss(mu, sigma) Normal distribution, also known as Gaussian distribution. mu is the mean, and sigma is the standard deviation. This function is slightly faster than the normalvariate() function defined below.
lognormvariate(mu, sigma) Lognormal distribution. If you take the natural logarithm of this distribution, you'll get a normal distribution with mean mu and standard deviation sigma. mu can be any value, and sigma must be greater than zero.
normalvariate(mu, sigma) Normal distribution. mu is the mean, and sigma is the standard deviation.
vonmisesvariate(mu, kappa) Von Mises distribution. mu is the mean angle, expressed in radians between 0 and 2pi, and kappa is the concentration parameter, which must be greater than or equal to zero. If kappa is equal to zero, the distribution reduces to a uniform random angle between 0 and 2pi.
paretovariate(alpha) Pareto distribution. alpha is the shape parameter.
weibullvariate(alpha, beta) Weibull distribution. alpha is the scale parameter and beta is the shape parameter.
❮ Python Att List Count Python File Flush ❯