中易网

python的函数是怎么执行的?

答案:1  悬赏:40  
解决时间 2021-02-28 23:08
为什么n=0时for语句不报错,n=1或n=2时执行完if语句为什么for语句不继续执行,能不能改成if···elif···else:for这样的形式?
def fib(n):
if n == 1:
return [1]
if n == 2:
return [1, 1]
fibs = [1, 1]
for i in range(2, n):
fibs.append(fibs[-1] + fibs[-2])
return fibs
print (fib(10))
最佳答案
n=0时执行到了for i in range(2,n),这个range是个空列表[],故一次也不会进入for循环执行“ fibs.append(fibs[-1] + fibs[-2])”,,直接返回[1,1],故不报错
n=1返回[1]
n=2返回[1,1]
n=3及以上,进入for循环,fibs每次增加一个元素,其值为倒数第1个和倒数第2个元素之和
改为if ... elif...else可以如下:
def fib(n):
    if n<1:
        return None
    elif n == 1:
        return [1]
    elif n == 2:
        return [1, 1]
    else:
        fibs = [1, 1]
        for i in range(2, n):
            fibs.append(fibs[-1] + fibs[-2])
    return fibs
print (fib(10))
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
recycle to do对吗
湛江市锦成机电有限公司在哪里啊,我有事要去
皇宋通宝这种什么价格
联想电脑电池为无电芯减重模块什么意思
南充的米其林和吉布鲁哪个更好
平河村村地址在哪,我要去那里办事
谁知道成都中医药大学十二桥旁边迎宾苑酒店住
源奥宾馆地址在什么地方,想过去办事
限位开关wlca2-2的型号代表什么含义
如何在思想品德课中渗透德育教育 博客
网品牌推广公司哪家好
怎么样把在Excel编辑过的文件发到别人的QQ邮
数据库中直接函数依赖和传递函数依赖的区别
天猫上的李宁官方网店是不是正品呢?
美图拍拍总卡,一张照看都不能照!!请高手指
推荐资讯
评到了建档立卡贫困户能有什么优惠政策?子女
求推女郎 无水印全集
加工中心 亿铨 丽驰 哪个好?
韩国印象sj的发型屋叫什么名字
evisu的眼镜架真的镜片会不会重
朝阳镇烧烤怎么去啊,有知道地址的么
去云南西双版纳怎么走
刚买了炼狱蝰蛇,请问这个刷新率应该怎么调?
急。开头是女声 show me whats your baby ,
明天军训,失眠了,怎么办?
中国农业银行新密市来集分理处这个地址在什么
天宇影视文化传播公司地址在哪,我要去那里办
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?