基础知识:
repr 和 _ str _的区别,看这里点这里
time库
time库里面的
localtime函数

用的时候会返回年 月 日时分秒六个类型的字典还是数组来着???忘了,
自己回去打一下。
ok,查了一下,是以元组方式返回,打脸了。
话不多说,上代码:
import time as t
class MyTimer():
def __init__(self):
self.prompt="未开始计时-----"
self.lasted=[]
self.begin=0
self.end=0
def __str__(self):
return self.prompt
__repr__=__str__
#开始计时
def start(self):
self.begin=t.localtime()
#上面是time库中的一个方法
print("计时开始-----")
#停止计时
def stop(self):
self.end=t.localtime()
self._calc()
print("计时结束了!!!")
#内部方法,计算运算时间的
def _calc(self):
self.lasted=[]
self.prompt="总共运行了"
for index in range(6):
self.lasted.append(self.end[index]-self.begin[index])
self.prompt+=str(self.lasted[index])
简易代码,
当然也会出现一大堆的问题:
先来看看截图:

最后算出来的值,不人性化,
而且可能会出现负值。
出来的一大堆东西,要让人看懂了才行:
改进如下:
self.unit=[‘年’,‘月’,‘日’,‘小时’,‘分钟’,‘秒’]
self.prompt+=(str(self.lasted[index])+self.unit[index])
运行结果:
总共运行了0年0月0日0小时0分钟3秒
这里先不对可能产生负数进行讨论:还要去备考四级呢嘿嘿嘿
先对一些常见情况进行处理吧,
脚本如下:
import time as t
class MyTimer():
def __init__(self):
self.unit=['年','月','日','小时','分钟','秒']
self.prompt="未开始计时-----"
self.lasted=[]
self.begin=0
self.end=0
def __str__(self):
return self.prompt
__repr__=__str__
#开始计时
def start(self):
self.begin=t.localtime()
#上面是time库中的一个方法
self.prompt="提示:请先用stop()停止计时!"
print("计时开始-----")
#停止计时
def stop(self):
if not self.begin:
print("提示,请先用start()进行计时")
#这里因为前面是0,没有的话就gg了
self.end=t.localtime()
self._calc()
print("计时结束了!!!")
#内部方法,计算运算时间的
def _calc(self):
self.lasted=[]
self.prompt="总共运行了"
for index in range(6):
self.lasted.append(self.end[index]-self.begin[index])
if self.lasted[index]:
#这里是为了将多余的那些0去掉
self.prompt+=(str(self.lasted[index])+self.unit[index])
#为下一轮计时初始化变量
self.begin=0
self.end=0
运行结果:

这个时候可能出现负数:

下次再看看怎么搞吧。

778

被折叠的 条评论
为什么被折叠?



