|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我在学习定时器的过程中,
理解了定时器的原理。
但是运行代码时,
开始计时,和计时结束,
都是同时执行的,无法看到定时的时长。
于是
我想把定时器的代码
通过while Ture
写成一个小工具。
通过输入指令来控制
定时器的开始和结束。
可执行却发生了错误,
请高手指点,
哪个地方的问题。
代码如下:
开始编号计时器代码
"""
import time as t
class MyTimer:
def start(self):
self.start = t.localtime()
print('计时开始……')
def stop(self):
self.stop = t.localtime()
self._calc()
print('计时结束!')
def _calc(self):
self.lasted = []
self.prompt = '总共运行了'
for i in range(6):
self.lasted.append(self.stop[i] - self.start[i])
self.prompt += str(self.lasted[i])
print(self.prompt)
def info():
print('请按1开始计时')
print('再按2结束计时')
print('请按3退出系统')
print('-' * 20)
while True:
info()
num = input('请输入功能序号:')
t1 = MyTimer()
if num == '1':
t1.start()
elif num == '2':
t1.stop()
elif num == '3':
exit()
else:
print('你输入的信息有误!')
本帖最后由 isdkz 于 2023-1-29 18:28 编辑
第一:你的属性名跟方法名冲突了 (start 和 stop) 解决方法:给属性或方法改名
第二:t1 = Mytimer() 对计时器的实例化应该放在 if num == '1' 也就是开始那里,不然的话开始计时和结束计时用的不是同一个计时器肯定会出问题
第三:你那个计算时间的方法好像有点问题(这个我没有给你改,就是 _calc 这个方法,你再想想)
对你的修改代码如下:
- import time as t
- class MyTimer:
- def start(self):
- self.start_t = t.localtime()
- print('计时开始……')
- def stop(self):
- self.stop_t = t.localtime()
- self._calc()
- print('计时结束!')
- def _calc(self):
- self.lasted = []
- self.prompt = '总共运行了'
- for i in range(6):
- self.lasted.append(self.stop_t[i] - self.start_t[i])
- self.prompt += str(self.lasted[i])
- print(self.prompt)
- def info():
- print('请按1开始计时')
- print('再按2结束计时')
- print('请按3退出系统')
- print('-' * 20)
- while True:
- info()
- num = input('请输入功能序号:')
- if num == '1':
- t1 = MyTimer()
- t1.start()
- elif num == '2':
- t1.stop()
- elif num == '3':
- exit()
- else:
- print('你输入的信息有误!')
复制代码
|
|