免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 16002 | 回复: 6
打印 上一主题 下一主题

求助:IndexError: list index out of range? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-12-31 15:57 |只看该作者 |倒序浏览
按照<Python基础教程>上的代码例子运行,却总是提示错误:

运行Python为2.7.3

函数代码如下:简单地计算数列
def fibs(num):
    result = [0.1]
    for i in range(num - 2):
        result.append(result[-2] + result[-1])
    return result

运行结果却总是:

================================
>>>
>>> fibs(5)

Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    fibs(5)
  File "C:/Users/YG/Desktop/fibs", line 4, in fibs
    result.append(result[-2] + result[-1])
IndexError: list index out of range

自己找了半天也没有结果,这周刚开始学习Python,摸不着头绪,只能求助论坛的各位朋友了!

论坛徽章:
1
辰龙
日期:2014-05-22 11:38:58
2 [报告]
发表于 2012-12-31 16:15 |只看该作者
  1. result = [0,1]
复制代码

论坛徽章:
0
3 [报告]
发表于 2012-12-31 16:58 |只看该作者
这句代码有错误么?
回复 2# winway1988



   

论坛徽章:
0
4 [报告]
发表于 2012-12-31 17:34 |只看该作者
  1. def fibs(num): #你传入了5
  2.     result = [0.1] #此处,只是赋值单个,浮点值 0.1,不知道,你本意是否就是如此。
  3.     for i in range(num - 2):
  4.         result.append(result[-2] + result[-1]) #如果你上面本意就是赋值浮点数0.1,那么此时result就是个列表,其中保存了1个浮点数,所以你用[-2]去从只有一个数的result列表中取值,肯定是超出范围了:list index out of range
  5.     return result
复制代码

论坛徽章:
0
5 [报告]
发表于 2012-12-31 19:23 |只看该作者
这句代码确实错了,是我太大意了。谢谢啦!
回复 2# winway1988


   

论坛徽章:
0
6 [报告]
发表于 2012-12-31 19:24 |只看该作者
确实是这个问题,是自己粗心大意导致的问题,谢谢!
回复 4# crifan


   

论坛徽章:
0
7 [报告]
发表于 2013-01-02 14:54 |只看该作者
回复 6# windhawkgyang
    感兴趣的话,可以去看我整理的:【教程】详解Python中代码缩进(Indent):影响代码的内在逻辑关系和执行结果


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP