习惯性错误——list assignment index out of range(列表分配索引超出范围)

先来看原题
在这里插入图片描述
十分简单
做法与斐波那契数列相似
但写出代码却出现了错误

line=[1 for i in range(20190324)]#这出没有错

for i in range(3,20190325):#这里出现了明显错误
#列表从0开始,然鹅此处却误以为理所当然的认为从1开始,
#明显这里的3,考虑到了这一点,
#而到20190325这完全忘记这一点收到了
#(line=[1 for i in range(20190324)])这里的误导
    line[i]=(line[i-1]+line[i-2]+line[i-3])%10000


print(line[20190324])#到此处更是迷糊了

原因混淆了数列的开始概念
由于此题运算范围极大而调试困难,思维惯性更无法突破。
而此前学习也多次翻过这种错误,多数情况下都不易察觉,故写出来,警戒自己。
正确代码

line=[1 for i in range(20190324)]

for i in range(3,20190323):
    line[i]=(line[i-1]+line[i-2]+line[i-3])%10000


print(line[20190323])
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值