Python Language Reproducible random numbers: Seed and State

Example

Setting a specific Seed will create a fixed random-number series:

``````random.seed(5)                 # Create a fixed state
print(random.randrange(0, 10))  # Get a random integer between 0 and 9
# Out: 9
print(random.randrange(0, 10))
# Out: 4
``````

Resetting the seed will create the same "random" sequence again:

``````random.seed(5)                 # Reset the random module to the same fixed state.
print(random.randrange(0, 10))
# Out: 9
print(random.randrange(0, 10))
# Out: 4
``````

Since the seed is fixed these results are always `9` and `4`. If having specific numbers is not required only that the values will be the same one can also just use `getstate` and `setstate` to recover to a previous state:

``````save_state = random.getstate()  # Get the current state
print(random.randrange(0, 10))
# Out: 5
print(random.randrange(0, 10))
# Out: 8

random.setstate(save_state)     # Reset to saved state
print(random.randrange(0, 10))
# Out: 5
print(random.randrange(0, 10))
# Out: 8
``````

To pseudo-randomize the sequence again you `seed` with `None`:

``````random.seed(None)
``````

Or call the `seed` method with no arguments:

``````random.seed()
`````` PDF - Download Python Language for free