| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
本来准备上传图片的,但是限制3个,然后中途退出了,既然就已经达到上传上限了。希望论坛可以改进一下,在还没有发表之前,怎么也不能算用过了吧。 
 
begin = (2017, 11, 22, 14, 0, 47,) 
end = (2017, 11, 22, 15, 0, 41,) 
lasted = [] 
borrow = [0,12,31,24,60,60] 
 
for index in range(6): 
    temp = end[index] - begin[index] 
    if temp < 0: 
         i = 1 
         while lasted[index-i] < 1: 
             lasted[index-i] += borrow[index-i] -1 
             lasted[index-i-1] -= 1 
             i += 1 
 
         lasted.append(borrow[index] + temp) 
         lasted[index-1] -= 1 
    else: 
        lasted.append(temp) 
    print(lasted[index]) 
print(lasted) 
 
上面的代码得到的结果是 
0, 0, 0, 1, 0, 54 
[-2, 10, 29, 23, 57, 54] 
为何索引出来的结果和打印列表出来的结果不同呢 
 
当我在 if 语句里只保留 lasted.append(borrow[index] + temp) 时: 
begin = (2017, 11, 22, 14, 0, 47,) 
end = (2017, 11, 22, 15, 0, 41,) 
lasted = [] 
borrow = [0,12,31,24,60,60] 
 
for index in range(6): 
    temp = end[index] - begin[index] 
    if temp < 0: 
         # i = 1 
         # while lasted[index-i] < 1: 
         #     lasted[index-i] += borrow[index-i] -1 
         #     lasted[index-i-1] -= 1 
         #     i += 1 
         # 
          lasted.append(borrow[index] + temp) 
         # lasted[index-1] -= 1 
    else: 
        lasted.append(temp) 
    print(lasted[index]) 
print(lasted) 
 
得到的结果如下: 
0, 0, 0, 1, 0, 54 
[0, 0, 0, 1, 0, 54] 
那么这段代码到底有什么用呢,不用 while 语句里的代码也可以得到同样的结果,而且在直接打印列表与 索引的结果也是一致的。
重新调试了一下,发现运行你提供的参数,还是需要执行while语句,不过执行逻辑和甲鱼老师的不一样。 
最大的改变是把下列两条语句移到for循环的开始,然后再执行while语句:
 -  lasted.append(borrow[index] + temp)
 
 -  lasted[index-1] -= 1
 
  复制代码
其中,while语句逻辑有少量改动,详见我的帖子:
 http://bbs.fishc.com/thread-101090-1-1.html 
 
 
 |   
 
 
 
 |