python中randint函数如何使用?如何对randint函数的运行效率进行测试?

我们知道在python中randint函数是用来随机生成的,相对于其他函数它有哪些特点呢?这篇文章主要介绍了python中randint函数如何使用?如何对randint函数的运行效率进行测试?下面一起来看看吧,希望学习完这篇文章之后能让你有所收获 。

python中randint函数如何使用?如何对randint函数的运行效率进行测试?

文章插图
通常在使用python进行随机数的生成时,我们可以使用到多种函数,python中的random.randint()函数也是其中的一种,但是通过与其他随机函数的对比,发现这个函数的运行时间会相对于其他函数来说的运行时间偏慢,所以我们要来进一步的了解它是运行效率低的问题 。
一、randint()运行效率的测试
第一步,我们要进行代码的运行,进一步了解random.randint()函数的运行效率,使用的测试方法如下:
【python中randint函数如何使用?如何对randint函数的运行效率进行测试?】$ python3 -m timeit -s 'import random' 'random.random()'10000000 loops, best of 3: 0.0523 usec per looppython3 -m timeit -s 'import random' 'random.randint(1, 100)'1000000 loops, best of 3: 1.09 usec per loop我们通过代码及运行结果可以发现,我们使用这个函数生成一个[1-100]直接是随机数时,它的输出大小是在生成一个[0-1]浮点数之间的好几倍 。
二、从源码分析randint()的缺陷
我们通过Python中的random.random()和randint()这个函数进行对比做进一步的分析,我们先了解一下random()这个函数,假设我们将函数定义到一个h1\ random.py文件中,这个函数是Random类的random方法的别名,代码如下:
static PyObject *random_random(RandomObject *self, PyObject *Py_UNUSED(ignored)){    uint32_t a=genrand_int32(self)>>5, b=genrand_int32(self)>>6;    return PyFloat_FromDouble((a*67108864.0+b)*(1.0/9007199254740992.0));}在上面的代码中,使用getrand_int32() 函数它可以迅速生成一个伪随机数 。当我们在Python中调用一个random.random()函数时,这个函数它可以直接对一个C函数进行调用,而该C函数唯一的功能就是:生成随机数,并将genrand_int32()的结果转换为浮点数,不需要在对其他做出任何的操作 。而Python中的randint()函数randint函数会调用randrange()函数,在调用的时候会对大量的函数进行检查,这样会耗费大量的运行时间,导致运行速度会变慢很多 。
以上就是有关“python中randint函数如何使用?如何对randint函数的运行效率进行测试?”的全部内容了,想要了解更多Python函数的知识,可以继续关注学习 。

    推荐阅读