python计时器单位,python(计时器)
计时器
要求:
定制一个计时器的类
start 和 stop方法代表启动计时和停止计时
假设计时器对象 t1,print(t1)和直接调用t1 均显示结果
当计时器未启动或已停止计时,调用stop方法能给予温馨提示
两个计时器对象可以相加: t1 + t2
只能使用提供的有限资源完成
资源:
使用time模块的localtime方法获取时间
time.localtime返回 struct_time的时间格式
表现你的类: _ str _ 和 _ repr _(str调用时要用print,repr可直接调用)
import time as t
class MyTimer:
#开始计时
def start(self):
self.begin = t.localtime()
self.prompt = '提示:请先用stop()停止计时'
print('开始计时')
#停止计时
def stop(self):
if not self.begin:
print('提示:请先用start()开始计时')
else:
self.end = t.localtime()
self._calc()
print('计时结束')
#计时器相加
def __add__(self,other):
prompt = '总共运行了'
result = []
for index in range(6):
result.append(self.lasted[index] +other.lasted[index])
if result[index]:
prompt += (str(result[index]+self.unit[index])
return prompt
def __init__(self):
self.unit = ['年','月','天','小时','分钟','秒']
self.borrow= [0,12,31,24,60,60]
self.prompt = '未开始计时'
self.lasted = []
self.begin = 0
self.end = 0
def __str__(self):
return prompt#重写__str__魔法方法,程序在调用print函数时,打印当时状态的prompt内容
__repr__ = __str__#将__repr__和__str__相同化
#内部方法,计算运行时间
def _calc(self):
self.lasted = []#制作一个空列表,存放每个单位相减的值
self.prompt = '总共运行了'
for index in range(6):
temp = self.end[index] - self.begin[index]
if temp < 0:
i = 1
while self.lasted[index -i] < 1:#向前边的位数借
self.lasted[index - i] += self.borrow[index - i] - 1
self.lasted[index - i - 1] -= 1
i += 1#向更高位借
self.lasted.append(self.borrow[index] + temp)
self.lasted[index - 1] -= 1
else:
self.lasted.append(temp)
for index in range(6):
self.lasted.append(self.end[index] - self.begin[index])
if self.lasted[index]:
self.prompt += str(self.lasted[index]) + self.unit[index]
#为下一轮计时初始化变量
self.begin = 0
self.end = 0
运行结果:
>>>t1 = MyTimer()
>>>t1
>>>未开始计时
>>>t1.statrt()
>>>开始计时
>>>t1.stop()
>>>计时结束
>>>t1
>>>总共运行了5秒
>>>t2=MyTimer()
>>>t2.stop()
>>>提示:请先用start()开始计时
>>>t2.start()
>>>开始计时
>>>t2
>>>提示:请先用stop()停止计时
>>>t2.stop()
>>>计时结束
>>>t2
>>>总共运行了5秒
>>>t1 + t2
>>>总共运行了10秒
python计时器单位,python(计时器)相关推荐
- python 计时方法_Python计时器类| cancel()方法与示例
python 计时方法 Python Timer.cancel()方法 (Python Timer.cancel() Method) cancel() is an inbuilt method of ...
- python中单位转换_Python字节单位转换实例
我就废话不多说了,直接上代码! from enum import Enum class Values(): values={'B':1} @staticmethod def getValues(): ...
- python字节单位换算
python字节单位换算,将'B'转换为'B', 'K', 'M', 'G', 'T', 'PB') def StrOfSize(size):'''递归实现,精确为最大单位值 + 小数点后三位'''d ...
- python程序分析,用Python编写分析Python程序性能的工具的教程
用Python编写分析Python程序性能的工具的教程 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: 用Python编写分析Python程序性能的工具的教程.tx ...
- python考级证书-Python 全国考级二级
第1章 Python概述 [Python语言简介] Python是一种跨平台.开源.免费的解释型高级动态编程语言,是一种通用编程语言. Python支持命令式编程和函数式编程两种方式,并且完全支持面 ...
- python基础知识点-Python入门基础知识点(基础语法介绍)
计算机基础知识介绍 计算机核心部件分为CPU,内存,硬盘,操作系统 1.CPU:中央处理器,相当于人大脑 2.内存:临时存储数据.现在通常分为 8g和16g(不能替代硬盘的原因:1,成本高 2,断电即 ...
- python编码读法-python的读法
广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 程序员,在其他人眼中往往都是高冷的存在,在他们的眼中能用代码解决的问题绝对不考虑其 ...
- python中文解释-python注释中文
广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 4.python代码注释最后更新于:2019-10-05 14:25:4 ...
- python培训骗局-python 无良培训忽悠骗局知多少?
作者:前海之家 python 无良培训忽悠骗局知多少?-1.jpg (27.16 KB, 下载次数: 6) 2019-11-29 09:16 上传 这里专指哪些利用Python热,不问结果,骗培训的人 ...
最新文章
- How can I create an Asynchronous function in Javascript?
- android Java BASE64编码和解码二:图片的编码和解码
- @data注解不生效_面试官:你经常在SpringBoot中使用的条件注解底层是如何实现的?你了解过吗?...
- thymeleaf th:href url传递多参数
- java程序结构_java程序结构
- 第7章-选择器+伪类
- 正则过滤符号_多角度理解正则项
- GitHub或正式登陆中国!拟在中国设立分公司
- Redis基础笔记 (二)
- struts ValueStack 详解
- window.open ()的用法
- 5-1 7 安装 rpm yum 本地仓库
- zabbix安装配置
- 数字后端概念——shielding
- 2018最新第三方支付牌照公司名单「完整」
- 易基因 - 外泌体let-7d-3p和miR-30d-5p作为宫颈癌及其癌前病变无创筛查的诊断标志物|早期筛查
- Gym - 101350E Competitive Seagulls——博弈
- coco数据集分割可视化格式转换
- Intel graphics HD 4600 核芯显卡 对比 nVIDIA Geforce GTX 750 2GB GDDR5 独立显卡
- android 时间颜色,android修改状态栏时间和日期颜色.docx
热门文章
- Need to upgrade docker package to 17.06.0+. Docker升级到最新版本
- nginx 1.9.9 Linux 环境安装
- Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 完美解决(tomcat error)
- 获取Access表字段类型的自定义函数
- 如何用两个开关控制同一盏灯
- 服务器zip解压php,服务器端解压缩zip的脚本
- linux下查找是否安装了fcitx插件
- BugkuCTF-MISC题只有黑棋的棋盘(writeup)
- brew php imagemagick,关于node使用gm和imageMagic在mac的坑
- java调用js查询mongo_MongoDB增删查改操作示例【基于JavaScript Shell】