44讲,魔法方法:简单定制的d0,时间相减得负值,大神求助!
本帖最后由 我下何从 于 2020-5-26 14:01 编辑import time as t 在借位那里自己写的,就是出错。。。但是不知道为啥出错,小白求助
class MyTimer():
def __init__(self):
self.unit=['年','月','日','时','分','秒']
self.prompt="未开始计时"
self.lasted=[]
self.begin=0
self.end=0
def __repr__(self):
return self.prompt
def start(self):
self.begin=t.localtime()
self.prompt= "请先调用stop停止计时"
print("计时开始:")
#停止计时
def stop(self):
if not self.begin:
print('请先计时')
else:
self.end=t.localtime()
self._calc()
print("计时结束")
#计算计时时间
def _calc(self):
self.listed=[]
self.prompt='总共运行了'
for index in range(6):
self.listed.append((self.end-self.begin))
if self.listed<0:
#秒:
if self.unit in self.unit: #索引值每个确定,当相减的后者为负值的时候,向前借一位
self.listed-=1 #按我的想法是,即使前面那位是0,被借了变成-1,也可以在下次循环再往前补回来,但是结果却不行,问问为啥啊...
self.listed=60+self.listed
#分:
elif self.unit == self.unit:
self.listed-=1
self.listed=60+self.listed
#时:
elif self.unit == self.unit:
self.listed-=1
self.listed=24+self.listed
#日:
elif self.unit == self.unit:
self.listed-=1
self.listed=31+self.listed
#月:
elif self.unit == self.unit:
self.listed-=1
self.listed=12+self.listed
for index in range(6):
if self.lasted>0:
self.prompt += str(self.lasted) + self.unit def __add__(self, other):
propmt = '总共运行了'
result = []
for index in range(6):
result.append(self.lasted + other.lasted)
if result:
prompt += (str(result) + self.unit)
return prompt
你忘记加self 了
import time as t
class MyTimer():
def __init__(self):
self.unit = ['年', '月', '日', '时', '分', '秒']
self.prompt = "未开始计时"
self.lasted = []
self.begin = 0
self.end = 0
def __repr__(self):
return self.prompt
def __add__(self, other):
propmt = '总共运行了'
result = []
for index in range(6):
result.append(self.lasted + other.lasted)
if result:
self.prompt += (str(result) + self.unit)
return self.prompt
def start(self):
self.begin = t.localtime()
self.prompt = "请先调用stop停止计时"
print("计时开始:")
# 停止计时
def stop(self):
if not self.begin:
print('请先计时')
else:
self.end = t.localtime()
self._calc()
print("计时结束")
# 计算计时时间
def _calc(self):
self.listed = []
self.prompt = '总共运行了'
for index in range(6):
self.listed.append((self.end - self.begin))
if self.listed < 0:
# 秒:
if self.unit in self.unit:# 索引值每个确定,当相减的后者为负值的时候,向前借一位
self.listed -= 1# 按我的想法是,即使前面那位是0,被借了变成-1,也可以在下次循环再往前补回来,但是结果却不行,问问为啥啊...
self.listed = 60 + self.listed
# 分:
elif self.unit == self.unit:
self.listed -= 1
self.listed = 60 + self.listed
# 时:
elif self.unit == self.unit:
self.listed -= 1
self.listed = 24 + self.listed
# 日:
elif self.unit == self.unit:
self.listed -= 1
self.listed = 31 + self.listed
# 月:
elif self.unit == self.unit:
self.listed -= 1
self.listed = 12 + self.listed
for index in range(6):
if self.lasted > 0:
self.prompt += str(self.lasted) + self.unit Twilight6 发表于 2020-5-26 13:27
emmm其实问题不在这里,我并没有调用这个+,就是单纯那个借位的问题 我下何从 发表于 2020-5-26 13:59
emmm其实问题不在这里,我并没有调用这个+,就是单纯那个借位的问题
嗯我知道问题不在那 可是那边如果没改 你下次运行也会出错 只是现在是被索引给先出错了
代码太多了 看头疼,不是自己写的思路没那么清晰 所以可能来看的人比较少 Twilight6 发表于 2020-5-26 14:15
嗯我知道问题不在那 可是那边如果没改 你下次运行也会出错 只是现在是被索引给先出错了
代码太多 ...
嗯嗯,其实这道题前面的代码我基本没动,就是那个借位那里我和标准答案有点不同, 就是不太理解我借位为啥除了问题,老哥你在做这题的时候怎么做的呢? 本帖最后由 Twilight6 于 2020-5-26 14:25 编辑
我下何从 发表于 2020-5-26 14:18
嗯嗯,其实这道题前面的代码我基本没动,就是那个借位那里我和标准答案有点不同, 就是不太理解我借位为 ...
def __calc(self):
self.prompt = '总共运行时间为'
for index in range(6):
judge = self.end - self.begin
if judge < 0 :
new_lasted = self.ary + judge
self.lasted.append(new_lasted)
if index >= 1 :
self.lasted.insert(index-1,self.lasted-1)
self.lasted.pop(index)
else:
self.lasted.append(judge)
for index in range(6):
if self.lasted:
self.prompt += (str(self.lasted) + self.unit)
# 初始化变量,便于下一次的计时
self.begin = 0
self.end = 0 Twilight6 发表于 2020-5-26 14:19
老哥我想问下,标准答案里self.lasted=[] 这里是是空列表为什么下面借位的时候可以直接 while self.lasted < 1: 这样子不会报错吗?在不存在值的列表里进行索引,在这while之后才会输入值给列表呀
我下何从 发表于 2020-5-26 14:38
老哥我想问下,标准答案里self.lasted=[] 这里是是空列表为什么下面借位的时候可以直接 while self.l ...
因为刚刚开始的时候 temp 不可能 < 0 会先执行else 里面的代码块哦~~ Twilight6 发表于 2020-5-26 14:41
因为刚刚开始的时候 temp 不可能 < 0 会先执行else 里面的代码块哦~~
老哥,你学python多久了啊,学了二十多天的我感觉除了简单一点的题会做,其他基本都有看答案,而隐约觉得前面的题让现在的我来做,即使当时我想了很久也会做了,现在也不一定会做,有点打击信心啊 我下何从 发表于 2020-5-26 14:45
老哥,你学python多久了啊,学了二十多天的我感觉除了简单一点的题会做,其他基本都有看答案,而隐约觉得 ...
我这题当时也卡了好久呢,几个小时不停改,有的时候改半天还回到原点....
我注册时间就是开始学Python 的时间嘿嘿 Twilight6 发表于 2020-5-26 14:46
我这题当时也卡了好久呢,几个小时不停改,有的时候改半天还回到原点....
我注册时间就是开始学Python ...
那你现在python不是就是基本学完了呀 我下何从 发表于 2020-5-26 14:48
那你现在python不是就是基本学完了呀
没 学到80课时就没继续看了 最近准备学下数据可视化 Twilight6 发表于 2020-5-26 14:49
没 学到80课时就没继续看了 最近准备学下数据可视化
噢噢,这样子 Twilight6 发表于 2020-5-26 14:49
没 学到80课时就没继续看了 最近准备学下数据可视化
老哥能加个QQ吗,有些学python的疑惑想问一波
页:
[1]