请问下为什么运行结果没有显示秒数啊???
计时器代码: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 __add__(self, other):
prompt = "总共运行了"
result = []
for index in range(6):
result.append(self.lasted + other.lasted)
if result:
prompt += (str(result) + self.unit)
return prompt
# 开始计时
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 _calc(self):
self.lasted = []
self.prompt = "总共运行了"
for index in range(6):
self.lasted.append(self.end - self.begin)
if self.lasted:
self.prompt += (str(self.lasted) + self.unit)
# 为下一轮计时初始化变量
self.begin = 0
self.end = 0
t1 = MyTimer()
t1.start()
t1.stop()
print(t1)
结果:
计时开始...
计时结束!
总共运行了
{:5_107:} {:5_99:} 本帖最后由 Twilight6 于 2020-8-19 15:51 编辑
将你的代码分开执行,你这直接运行太快了,分开执行就可以了
先运行:
t1 = MyTimer()
t1.start()
然后去控制台时候在运行:
t1.stop()
print(t1)
因为程序运行的时间不足 1 秒,所以不会显示,加上 sleep(1)(表示让程序暂停一秒)就能显示了
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 __add__(self, other):
prompt = "总共运行了"
result = []
for index in range(6):
result.append(self.lasted + other.lasted)
if result:
prompt += (str(result) + self.unit)
return prompt
# 开始计时
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 _calc(self):
self.lasted = []
self.prompt = "总共运行了"
for index in range(6):
self.lasted.append(self.end - self.begin)
if self.lasted:
self.prompt += (str(self.lasted) + self.unit)
# 为下一轮计时初始化变量
self.begin = 0
self.end = 0
t1 = MyTimer()
t1.start()
t.sleep(1)
t1.stop()
print(t1) Twilight6 发表于 2020-8-19 15:50
将你的代码分开执行,你这直接运行太快了,分开执行就可以了
先运行:
分开执行也显示不了呢 zltzlt 发表于 2020-8-19 15:51
因为程序运行的时间不足 1 秒,所以不会显示,加上 sleep(1)(表示让程序暂停一秒)就能显示了
这样确实可以,但是可不可以不加强制等待也显示秒数呀?{:10_297:} 学抓蟒蛇 发表于 2020-8-19 15:57
这样确实可以,但是可不可以不加强制等待也显示秒数呀?
你分开执行就行的
原来在Python控制台执行代码才能显示秒数,直接执行代码的只能像鱼友说的,加sleep()才能显示秒数。{:10_266:} Twilight6 发表于 2020-8-19 16:05
你分开执行就行的
我刚试过了,可以{:10_341:}
页:
[1]