2

我有一个使用random模块将用户输入变量与随机生成的数字进行比较的函数。我想编写一个文档测试,它需要忽略或覆盖随机生成的数字。

在我的无知中,我试图为随机变量分配一个值,但仍然会生成一个随机数。我是否使用random.seed,如果是,我该如何应用?

据我所知,这只是将随机生成器“设置”为从不同的起点开始运行,而不是指定一个数字来替换将生成的数字。

4

1 回答 1

3

The python random number generator generates pseudo-random numbers using a deterministic algorithm, based of of the seed.

This means that if you set the seed to a fixed value, you can predict what numbers the module will generate:

>>> import random
>>> random.seed(1)
>>> random.random()
0.13436424411240122
>>> random.random()
0.8474337369372327
>>> random.random()
0.763774618976614
>>> random.seed(1)
>>> random.random()
0.13436424411240122
>>> random.random()
0.8474337369372327
>>> random.random()
0.763774618976614

Note how the 3 'random' numbers are repeated after I reset the seed back to 1.

Thus, if you set the seed in your doctest, you can predict exactly what random numbers will be used for your module-under-test.

于 2013-05-02T15:08:23.370 回答