The Python random module is primarily used to generate random numbers. It implements various distributions for pseudorandom number generators.
To use the random module, you must first import it:
import random
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']
Generating a random number using the random() method:
The random() method returns a random floating-point number in the half-open interval [0,1), meaning it 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 could be:
0.4784904215869241
The seed() method:
The seed() method changes the seed of the random number generator. You can call this method before using other functions from the random module.
Example:
#!/usr/bin/python3
import random
random.seed()
print("Random number with default seed:", random.random())
print("Random number with default seed:", random.random())
random.seed(10)
print("Random number with seed 10:", random.random())
random.seed(10)
print("Random number with seed 10 again:", random.random())
random.seed("hello", 2)
print("Random number with string seed:", random.random())The output will be:
Random number with default seed: 0.7908102856355441 Random number with default seed: 0.81038961519195 Random number with seed 10: 0.5714025946899135 Random number with seed 10 again: 0.5714025946899135 Random number with string seed: 0.3537754404730722
random Module Methods
The random module provides the following methods:
| Method | Description |
|---|---|
seed() | Initializes the random number generator. |
getstate() | Returns an object capturing the current internal state of the generator. |
setstate() | Restores the generator's internal state to what was captured by getstate(). |
getrandbits(k) | Returns a Python integer with k random bits. |
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 a non-empty sequence seq. Raises IndexError if seq is empty. |
choices(population, ...) | Returns a list of k elements selected from the population. |
shuffle(x[, random]) | Shuffles the sequence x in place. |
sample(population, k, ...) | Returns a list of k unique elements randomly chosen from the population. |
random() | Returns a random floating-point number in the range [0.0, 1.0). |
uniform(a, b) | Returns a random floating-point number N such that a <= N <= b. |
triangular(low, ...) | Returns a random floating-point number N between low and high with the specified mode. |
betavariate(alpha, beta) | Beta distribution. The range of returned values is between 0 and 1. |
expovariate(lambd) | Exponential distribution. The parameter lambd is 1.0 / desired_mean. |
gammavariate(alpha, beta) | Gamma distribution (not to be confused with the Gamma function). Parameters must satisfy alpha > 0 and beta > 0. |
gauss(mu, sigma) | Gaussian (Normal) distribution. mu is the mean and sigma is the standard deviation. |
lognormvariate(mu, sigma) | Log-normal distribution. |
normalvariate(mu, sigma) | Normal distribution. |
vonmisesvariate(mu, kappa) | von Mises distribution. |
paretovariate(alpha) | Pareto distribution. |
weibullvariate(alpha, beta) | Weibull distribution. |
These methods provide a wide range of random number generation capabilities, making the random module versatile for various applications.