第一第二次循环是1没错,但是第三次i是2,执行else语句后结果应该为1阿,为什么是还是2呢

第一第二次循环是1没错,但是第三次i是2,执行else语句后结果应该为1阿,为什么是还是2呢


result = []   #  <class 'list'>:[1,1,2(这里为什么是2)]
for i in range(0, 50):
   if i == 0 or i == 1:
       result.append(1)
   else:
       result.append(result[i-2]+result[i-1])
print(result)

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
迷途中的一只猫 2019-06-17 00:20:11

 result[i-2]+result[i-1],i=2的时候是result[0]+result[1]没错,这里的result[0]是result的索引值0对应的是result列表里索引值为1的数字,result[1]对应的是result列表里索引值为1的数字。if==0 or if==1的时候已经添加索引值0,跟索引值1的数值了。

hzhawk 2019-06-10 13:34:09

result.append(result[i-2]+result[i-1])  这句改成    result.append(result[-2]+result[-1]) 这样更好理解

慕猿梦 2019-06-09 12:01:56

同学,您好,当i为0,1时,result列表中为[1,1],之后执行else语句,此时i为2,result[2-2]+result[2-1]=1+1=2。

如果我的回答解决了您的疑惑,欢迎采纳!!祝学习愉快~~~~~

  • 提问者 南笙v7 #1
    2-2怎么能等于1呐……
    2019-06-09 12:04:40
  • 明天不吃鱼 回复 提问者 南笙v7 #2
    你仔细看下我给你的评论回复说的很清楚了 2-2=0 result[0]=1
    2019-06-09 12:27:52
  • 慕猿梦 回复 提问者 南笙v7 #3
    同学,您好,result[0]=1,列表的第一个元素下标为0,想要取得result列表的[1,1]即result[0],result[1].
    2019-06-09 12:48:13
明天不吃鱼 2019-06-09 10:54:01

http://img1.sycdn.imooc.com//climg/5cfc72e7000195a412380776.jpg
这一句执行的结果
result[i-2]和result[i-1]是当前循环数的前两个。

前两次输入的是1是因为循环第0次第1次的时候往resultl里直接添加了1  因为append是追加

当循环第三次以后 就是当i=2开始的时候,后面都执行else 往result里面添加前两个数的和,这是列表里面已经被追加了两个1,所以第三次循环就把前两个数1+1=2了。else里面追加的是结果


  • 提问者 南笙v7 #1
    没搞懂,兄弟,我认为的是,前两次执行上面的,不满足了就执行else。
    2019-06-09 11:08:21
  • 明天不吃鱼 回复 提问者 南笙v7 #2
    可能是我解释的文字过多了,前两次是在执行if,但是执行if的时候i的前两次值是0,1 range(0,50)是让i遍历0-49。执行if的时候因为i是0 or 1, 所以就把固定的值1 强制添加进了列表result里面。当执行第三次的时候,此时i=2,就执行else: 执行else时要做相加操作,这时的result[i-2]是列表中第一个数,也就是result[0],那么另一个就是result[1],这时列表中的第一个和第二个值为1和1,所以往列表里面加了2
    2019-06-09 11:26:19
  • 所以我说执行第四次的时候 i=3 ,一直到执行第50次i=49的时候都不会执行if
    2019-06-09 11:28:37
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师