定制计时器python_python简单的定制 简易计时器的制作

基础知识:

repr 和 _ str _的区别,看这里点这里

time库

time库里面的

localtime函数

be655590e4fa0764165814899377dae5.png

用的时候会返回年 月 日时分秒六个类型的字典还是数组来着???忘了,

自己回去打一下。

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])

简易代码,

当然也会出现一大堆的问题:

先来看看截图:

6b8f64b6f639912be37d9144c528ba91.png

最后算出来的值,不人性化,

而且可能会出现负值。

出来的一大堆东西,要让人看懂了才行:

改进如下:

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

运行结果:

8719bdc8877c603362bef73a5d92fd66.png

这个时候可能出现负数:

7d4559e5c20500b052c58b225f97e7a4.png

下次再看看怎么搞吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值