|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
0、按照课堂中的程序,如果开始计时的时间是(2022年2月22日16:30:30),
停止时间是(2025年1月23日),那按照我们停止时间 - 开始时间 = 负数,应该做一些转换!
import time as t
class MyTimer():
def __init__(self):
self.unit = ['年', '月', '日', '小时', '分钟', '秒']
self.borrow = [0, 12, 32, 24, 60, 60]
self.prompt = "未开始计时!"
self.lasted = []
self.begin = 0
self.end = 0
........
#内部方法,计算运行时间
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]: #如果不为空
#self.prompt += (str(self.lasted[index]) +self.unit[index])
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):
if self.lasted[index]:
self.prompt += str(self.lasted[index]) + self.unit[index]
#为下一轮计时初始化变量
self.begin = 0
self.end = 0
问题:因为课后练习是从44讲代码上的延伸,所以只贴出来改变的部分。
还麻烦大神给个解题思路,和对应的注释! |
|