为什么要先判断 i==0 这段代码看不懂

为什么要先判断 i==0 这段代码看不懂

result = []
for i in range(0,50):
   if i == 0 or i == 1:     #判断为True时,就添加1,另外一个1呢?
       result.append(1)
   else:
       result.append(result[i-2]+result[i-1])   #这段代码看不懂,i-2,i-1 是基于i的值为2时吗?
print(result)

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

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

2回答
好帮手慕笑蓉 2020-06-28 10:33:06

同学,你好。

1、为什么要先判断 i==0:斐波那契数列:是由1开始的,如:1, 1, 2, 3, 5, 8......,循环i从0开始,循环得到的数据0,1添加到列表中的值要是1,1,因此要先判断 i==0 or i ==1后,再在列表中添加数据。

2、这段代码看不懂,i-2,i-1 是基于i的值为2时吗?:i-2,i-1 是基于i的值为2时,此时是从result中取出数据做加法运算得到斐波那契数列后面的数据。

如果解决了你的疑惑,请采纳,祝学习愉快~

華晧 2020-06-27 11:05:53

if i == 0 or i == 1 这行代码的意思是 当 i 的值为 0 或者 1 是 执行 if 下的代码块 依旧是向result列表中追加1,至于先判断那个后判断哪个没有要求, or 的意思是 两边的条件只要有一个是True那么他返回的就是True,只有两边都是False时才会返回False(建议再去看一下逻辑运算符那一块)

  • 華晧 #1
    result.append(result[i-2]+result[i-1]) 这段代码是 i 的值不为0或1时执行的,并且 i 的值是随着循环变化的,第一次执行时为2第二次为3……直到循环结束 i 的值为49。这行代码意思是先从result列表中取出 i -2 和 i -1 索引位置的数据然后让他们相加最后在追加到列表中
    2020-06-27 11:12:49
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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