5.7 Random numbers
Here is a task for you: give me five random integers between 1 and 10, inclusive. It’s okay if there are duplicates.
Python provides randint in the module random to give you a random integer within a range.
import random
[random.randint(1, 10) for i in range(6)]
[5, 8, 5, 10, 10, 1]
Are these really random? Let’s do it again:
[random.randint(1, 10) for i in range(6)]
[9, 6, 4, 5, 6, 8]
The lists are different, but let me insert one extra call before the comprehension and again do it twice.
random.seed(10)
[random.randint(1, 10) for i in range(6)]
[10, 1, 7, 8, 10, 1]
random.seed(10)
[random.randint(1, 10) for i in range(6)]
[10, 1, 7, 8, 10, 1]
These sequences don’t look so random anymore.
The function random computes a pseudo-random float
greater than or equal to 0 and less than 1.
[random.random() for i in range(3)]
...