使用python写一个倒计时_Python 实现一个计时器
问题
你想记录程序执行多个任务所花费的时间
解决方案
time 模块包含很多函数来执行跟时间有关的函数。 尽管如此,通常我们会在此基础之上构造一个更高级的接口来模拟一个计时器。例如:
import time
class Timer:
def __init__(self, func=time.perf_counter):
self.elapsed = 0.0
self._func = func
self._start = None
def start(self):
if self._start is not None:
raise RuntimeError('Already started')
self._start = self._func()
def stop(self):
if self._start is None:
raise RuntimeError('Not started')
end = self._func()
self.elapsed += end - self._start
self._start = None
def reset(self):
self.elapsed = 0.0
@property
def running(self):
return self._start is not None
def __enter__(self):
self.start()
return self
def __exit__(self, *args):
self.stop()
这个类定义了一个可以被用户根据需要启动、停止和重置的计时器。 它会在 elapsed属性中记录整个消耗时间。 下面是一个例子来演示怎样使用它:
def countdown(n):
while n > 0:
n -= 1
# Use 1: Explicit start/stop
t = Timer()
t.start()
countdown(1000000)
t.stop()
print(t.elapsed)
# Use 2: As a context manager
with t:
countdown(1000000)
print(t.elapsed)
with Timer() as t2:
countdown(1000000)
print(t2.elapsed)
讨论
本节提供了一个简单而实用的类来实现时间记录以及耗时计算。 同时也是对使用with语句以及上下文管理器协议的一个很好的演示。
在计时中要考虑一个底层的时间函数问题。一般来说, 使用 time.time()或 time.clock()计算的时间精度因操作系统的不同会有所不同。 而使用time.perf_counter()函数可以确保使用系统上面最精确的计时器。
上述代码中由 Timer 类记录的时间是钟表时间,并包含了所有休眠时间。 如果你只想计算该进程所花费的CPU时间,应该使用 time.process_time() 来代替:
t = Timer(time.process_time)
with t:
countdown(1000000)
print(t.elapsed)
time.perf_counter() 和time.process_time()都会返回小数形式的秒数时间。 实际的时间值没有任何意义,为了得到有意义的结果,你得执行两次函数然后计算它们的差值。
以上就是Python 实现一个计时器的详细内容,更多关于Python 计时器的资料请关注脚本之家其它相关文章!
使用python写一个倒计时_Python 实现一个计时器相关推荐
- python创建数字列表_Python 生成一个从0到n个数字的列表4种方法小结
Python 生成一个从0到n个数字的列表4种方法小结 我就废话不多说了,直接上代码吧! 第一种 def test1(): l = [] for i in range(1000): l = l + [ ...
- python定义一个空数组_python数组 1_python 数组最后一个元素_python定义一个空数组 - 云+社区 - 腾讯云...
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 感悟: 1.python列表操作里不允许变量类型的指针2.case1类似于冒泡排 ...
- python 定义函数方法_Python定义一个函数的方法
Python函数的定义 定义函数,也就是创建一个函数,可以理解为创建一个具有某些用途的工具.定义函数需要用 def 关键字实现,具体的语法格式如下: def 函数名(形参列表): //由零条到多条可执 ...
- python大作业数独_python做一个数独小游戏
最近看了下python的一些知识,在这里记载一下. 1.首先是安装,在官网下载最新的版本3.6,安装的时候要注意在下面勾选上ADD TO PATH,安装的时候会自动写入到环境变量里面,如果没有勾选,可 ...
- python怎么定义一个函数_Python定义一个函数的方法
Python函数的定义 定义函数,也就是创建一个函数,可以理解为创建一个具有某些用途的工具.定义函数需要用 def 关键字实现,具体的语法格式如下: def 函数名(形参列表): //由零条到多条可执 ...
- python写了代码_Python写代码的用法建议
1.Mutable and immutable types Python有两种内置或用户定义的类型 可变类型是允许就地修改内容的类型.典型的可变列表是列表和词典:所有列表都有变异方法,如 list.a ...
- python写推箱子_python写的推箱子小游戏
原标题:python写的推箱子小游戏 导语 Python 功能强大,可以写爬虫.服务器.数据分析.AI--当然,也可以写游戏. 用python写了个推箱子小游戏,在这里分享给大家,让我们愉快地开始吧~ ...
- python写安卓游戏_python写lol游戏脚本(用python开发安卓脚本)
python写lol游戏脚本 俾格米人和搅拌机的引擎. python-ogre和panda3d是用c/c编写的,但只提供了一个python接口. 你好,蟒蛇可以在Android上工作. 因为你可以在A ...
- python时间模块倒计时_Python时间模块
python时间模块倒计时 In this tutorial, we will learn about the Python time module. Python Variable is discu ...
最新文章
- 谷歌:朝鲜国家黑客第二次攻击安全研究员
- pyspark:basic_operating_1
- EXCEL调用REFPROP方法
- FishC笔记—01 讲:我和 Python 第一次亲密接触
- excel查标准正态分布_利用Excel的NORMSDIST计算正态分布函数表1
- awgn matlab,Matlab实现加性高斯白噪声信道(AWGN)下的digital调制格式识别分类
- python把汉字变成拼音英文_Python把汉字转换成拼音
- TCP/IP(3)——IPV6
- 【流媒体协议】图解 FLV 协议 快速入门
- 我们需要一个什么样的公司---读《重新定义公司》有感
- win10 更新Node JS和npm
- Git 使用过程中遇到的问题以及解决办法
- 【踩坑】Linux java中ftp下载文件,解压文件损坏,以及图片下载打开只显示下载路径的问题
- 博弈游戏·Nim游戏·二
- SQL Server 替换越南语(越南文)音标SQL脚本
- Transformer家族5 -- 推理加速(Faster-Transformer、TurboTransformers)
- 第一讲:个人建站云服务器选择
- 2022-08-04 乐理知识(三) 如何打拍子——V字打拍法,三角形打拍法,常见节奏型:二八,四十六,前十六后八,前八后十六,前后附点,大附点,大小切分,八三拍的节奏型及其变体
- 栈结构之链栈详解(C语言版)
- 职称计算机 只做模拟题,2017职称计算机考试Dreamweaver模拟练习题
热门文章
- VC中的一些常用方法(20条)
- 15个优雅的Python编程技巧,掌握后瞬间玩转Python
- 窗函数性能分析——MATLAB
- python爬取商城数据_Python爬取新版CRMEB小程序商城后台订单数据,保存为excel
- P2386 放苹果 方法一
- Python批量替换目录下文件后缀脚本实例
- 转学伯克利计算机科学,转学前往伯克利大学 你够格吗?
- mysql 毫秒比较_MYSQL的毫秒级时间比较问题
- CAN总线技术 | CAN脱颖而出的“秘密”
- Qt文档阅读笔记-QNetworkProxy::ProxyType解析(Qt设置Fiddler代理)