Python Timeit 模块2025年1月12日 | 阅读 8 分钟 在本教程中,我们将研究 Python 中用于计算 Python 程序执行时间的库。 Python 中的此类库提供了一种称为 timeit() 的方法。 timeit 模块将多次执行程序(在 Python 中)以精确估计代码执行时间。我们还可以通过计算程序执行的开始和结束时间并从中减去来计算执行时间,但此过程非常耗时。因此,我们使用 timeit() 方法来完成此操作,并且该方法还有助于计算程序执行时间。 Python 中的 Timeit() 是什么?Python timeit() 函数是 Python 模块中用于测量给定代码段所用运行时间的方法。 Python 模块运行程序语句一百万次,并提供从代码片段集合中获得的最小时间。 Python timeit() 是一种有用的技术,有助于检查代码的性能。 为什么使用 timeit 模块?
那么,现在让我们开始探索这个有用的模块吧! 语法让我们看看 timeit() 函数的语法,它接受四个参数,如下所示: 参数
现在我们将看到一个使用 timeit() 函数的简单示例。timeit() 函数使用 stmt 参数,该参数用于指定我们要计算其执行时间的代码片段。在此文章中,我们可以使用分号单行或三引号语句多行编写 stmt。 Python Timeit 模块示例示例 1下面展示了一个简单的示例。 源代码 输出 7.579999999052234e-05 上述代码的解释
示例 2让我们看另一个实际示例,其中我们将比较两种搜索策略:二分搜索和线性搜索。 此外,在这里我展示了另外两个功能:timeit.repeat() 函数以及调用我们程序中已定义的函数。 源代码 上述程序的运行结果是列表中 times 的最小值。 这是预期的示例输出。 输出 Linear search time: 3.3610007999999993 Binary search time: 2.5686276000000134 示例 3源代码 输出 Program to demonstrate the timeit functions for single and multi lines code The single line code in stmt parameters are results = 10 * 6 The multiple codes stmt using semicolons is given as follows: p1 = 10;q1 = 6; product = p1*q1 The multiple codes stmt using triple quotes is given as follows: '' def area_circle(): r1 = 3 res1 = math.pi * r1 * r1 The time taken to run the given code statement11 which uses semicolon is: 0.0018455999999105188 secs The time taken to run the given code statement22 which uses semicolon is: 0.004685600000016166 secs The time taken to run the given code statement33 which uses triple quotes is: 0.08174180000003162 secs 上述生成输出的屏幕截图 ![]() 上述代码的解释 在上面的程序中,我们了解了如何使用 setup、stmt 和 number 参数以及一行或多行代码语句。要编写多行代码,我们在 statement22 中使用了分号,我们也可以使用三引号语句来编写多行,我们在 statement33 中编写了它。因此,statement33 所需的 import 语句被分配给 timeit() 函数的 setup 参数,因为这用于执行 stmt 值。之后,它在运行 number = 一百万次后返回语句的执行时间。 在 Python 中,timeit 模块提供了 timeit() 函数来计算执行时间。此 timeit() 函数具有命令行界面和可调用函数。在使用此函数之前,我们应该注意几点:我们不能随处使用此函数,这意味着它仅用于小代码片段。最好使用一些其他函数,因为 timeit() 函数会立即计算代码执行时间,但如果代码需要几秒钟才能执行呢?那么这个函数就不推荐了。正如我们所讨论的,用于计算程序执行时间的 time 模块不推荐使用,因为它需要一些后台时间,可能无法提供准确的时间。 示例 4接下来,我们用另一个简单的例子来介绍 timeit,但首先,我们必须用“import timeit”语句导入 timeit 模块。如果不是使用上面的命令行语法,则需要此操作。 源代码 上面,我们将语句作为带引号的字符串传递给 timeit.timeit 方法,然后通过指定 number 参数来增加迭代次数。 输出 Output generated on the first time running the program: xxxx xxxx 0.013985199999979159 0.01543170000002192 Output generated on the second time running the program: xxxx xxxx 0.015419800000017858 0.01498160000005555 Output generated on the third time running the program: xxxx xxxx 0.014588099999969018 0.01608329999999114 第二次运行程序时生成的输出 xxxx xxxx 0.731701587427751 0.731268815585995 第三次运行程序时生成的输出 xxxxx xxxxx 0.724086241172824 0.725586380794246 上述代码的解释 当某个程序运行时,许多进程也在后台运行以使其可执行。 time 模块不计算后台进程的执行时间,但如果您想要精确的时间执行估计,timeit 是您应该选择的模块。 timeit 模块大约运行代码一百万次(默认值),并考虑了运行该代码段所需的最短时间。 为什么 timeit() 是衡量 Python 代码执行时间的最有效方法?以下是我们认为 timeit() 是衡量执行时间的最有效方法的几个原因。
结论在本教程中,我们得出结论,Python 中的 timeit 模块提供了 timeit() 函数。此函数用于计算代码语句的执行时间。在本文中,我们看到了一个基本示例。此外,我们还了解了如何使用分号或三引号语句来编写单行语句和多行程序语句。 我们还看到了使用 timeit() 函数参数(如 setup、stmt 和 number)编写模型的示例。这个 timeit() 函数比 time 模块非常有用,因为它可以帮助轻松快速地计算代码的性能。这个 timeit() 函数只能用于小代码片段,因为对于较长的代码片段来说,它不太推荐,因为它返回的时间可能需要几秒钟。 下一主题Python QR 码生成 |
项目目标:公司或展厅管理部门如何确定现有或潜在消费者是否希望购买某款产品(在此案例中为汽车)?如果他们拥有客户的工资、年龄和其他因子字段(自变量)的信息,就可以做到这一点...
21 分钟阅读
什么是二叉搜索树?二叉搜索树是一种二叉数据结构,包含具有以下几个属性的各种节点:左子树节点小于根节点。右子树节点大于根节点。每个节点的子节点...
阅读 6 分钟
介绍 在 Python 中,您可以使用一种简单的方法来识别在比赛中淘汰最多人的参赛者。创建一个字典,以参赛者名称为键,以他们相应的获胜次数为值,来组织您的比赛数据。然后,创建两个...
阅读 4 分钟
在本教程中,我们将编写一个 Python 程序来查找给定二维矩阵中 1 的最大数量。在给定的矩阵中,每一行都是排序的,我们需要找到包含最大数量 1 的行。让我们看看…
7 分钟阅读
在本教程中,我们将学习 toolz 模块、其功能以及它如何解决复杂的编程语言问题。Toolz 包提供了许多用于处理列表、函数和字典的函数。它为常规 Python 库提供的库添加了更多功能...
14 分钟阅读
众所周知,Python 是一种标准的脚本语言,因为它具有多功能特性。在下面的教程中,我们将了解如何借助 tkinter 和... 构建一个 GUI 应用程序来关闭、重启和注销计算机。
阅读 24 分钟
飞船泰坦尼克号问题是基本泰坦尼克号生存问题的进阶版本,机器学习爱好者必须面对一次,并预测一个人的生存几率。飞船泰坦尼克号项目问题说明 在这个项目中,一艘飞船载着许多人进行太空旅行。……
14 分钟阅读
在下面的教程中,我们将讨论一些用于自动化和测试的最佳 Python 模块或工具。在开发软件时可能会出现各种问题,而自动化和测试是解决这些问题而不花费...
5 分钟阅读
在软件开发人员、工程师和数据科学家中,Python 是一种备受欢迎的编程语言。其广泛的库和模块集合使得处理数据、图形和用户界面变得简单。PyQtGraph 就是一个广受欢迎的用于开发交互式实时视觉效果和可视化内容的包。您将学习...
阅读 3 分钟
在本教程中,我们将使用 Python 编程语言学习 KMP 算法。该算法主要用于以 O(n) 复杂度搜索模式或子字符串。该算法可能会在技术面试中被问到,以测试开发人员的能力。KMP 算法 KMP 代表 Knuth-Morris-Prat...
阅读 2 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India