计时器

要求:

定制一个计时器的类

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(计时器)相关推荐

  1. python 计时方法_Python计时器类| cancel()方法与示例

    python 计时方法 Python Timer.cancel()方法 (Python Timer.cancel() Method) cancel() is an inbuilt method of ...

  2. python中单位转换_Python字节单位转换实例

    我就废话不多说了,直接上代码! from enum import Enum class Values(): values={'B':1} @staticmethod def getValues(): ...

  3. python字节单位换算

    python字节单位换算,将'B'转换为'B', 'K', 'M', 'G', 'T', 'PB') def StrOfSize(size):'''递归实现,精确为最大单位值 + 小数点后三位'''d ...

  4. python程序分析,用Python编写分析Python程序性能的工具的教程

    用Python编写分析Python程序性能的工具的教程 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  用Python编写分析Python程序性能的工具的教程.tx ...

  5. python考级证书-Python 全国考级二级

    第1章  Python概述 [Python语言简介] Python是一种跨平台.开源.免费的解释型高级动态编程语言,是一种通用编程语言. Python支持命令式编程和函数式编程两种方式,并且完全支持面 ...

  6. python基础知识点-Python入门基础知识点(基础语法介绍)

    计算机基础知识介绍 计算机核心部件分为CPU,内存,硬盘,操作系统 1.CPU:中央处理器,相当于人大脑 2.内存:临时存储数据.现在通常分为 8g和16g(不能替代硬盘的原因:1,成本高 2,断电即 ...

  7. python编码读法-python的读法

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 程序员,在其他人眼中往往都是高冷的存在,在他们的眼中能用代码解决的问题绝对不考虑其 ...

  8. python中文解释-python注释中文

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 4.python代码注释最后更新于:2019-10-05 14:25:4 ...

  9. python培训骗局-python 无良培训忽悠骗局知多少?

    作者:前海之家 python 无良培训忽悠骗局知多少?-1.jpg (27.16 KB, 下载次数: 6) 2019-11-29 09:16 上传 这里专指哪些利用Python热,不问结果,骗培训的人 ...

最新文章

  1. How can I create an Asynchronous function in Javascript?
  2. android Java BASE64编码和解码二:图片的编码和解码
  3. @data注解不生效_面试官:你经常在SpringBoot中使用的条件注解底层是如何实现的?你了解过吗?...
  4. thymeleaf th:href url传递多参数
  5. java程序结构_java程序结构
  6. 第7章-选择器+伪类
  7. 正则过滤符号_多角度理解正则项
  8. GitHub或正式登陆中国!拟在中国设立分公司
  9. Redis基础笔记 (二)
  10. struts ValueStack 详解
  11. window.open ()的用法
  12. 5-1 7 安装 rpm yum 本地仓库
  13. zabbix安装配置
  14. 数字后端概念——shielding
  15. 2018最新第三方支付牌照公司名单「完整」
  16. 易基因 - 外泌体let-7d-3p和miR-30d-5p作为宫颈癌及其癌前病变无创筛查的诊断标志物|早期筛查
  17. Gym - 101350E Competitive Seagulls——博弈
  18. coco数据集分割可视化格式转换
  19. Intel graphics HD 4600 核芯显卡 对比 nVIDIA Geforce GTX 750 2GB GDDR5 独立显卡
  20. android 时间颜色,android修改状态栏时间和日期颜色.docx

热门文章

  1. Need to upgrade docker package to 17.06.0+. Docker升级到最新版本
  2. nginx 1.9.9 Linux 环境安装
  3. Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 完美解决(tomcat error)
  4. 获取Access表字段类型的自定义函数
  5. 如何用两个开关控制同一盏灯
  6. 服务器zip解压php,服务器端解压缩zip的脚本
  7. linux下查找是否安装了fcitx插件
  8. BugkuCTF-MISC题只有黑棋的棋盘(writeup)
  9. brew php imagemagick,关于node使用gm和imageMagic在mac的坑
  10. java调用js查询mongo_MongoDB增删查改操作示例【基于JavaScript Shell】