为什么循环范围内的长度就是循环的长度,但循环范围内却没有增量?

问题描述

我是一个初学者,我自己尝试了这个斐波那契数列,但是,即使列表的长度增加了,为什么变量b = len(e)+5的值却没有增加!为什么它不影响for循环的范围。

e=[0,1]
a=1
b=len(e)+5
n=int(input('enter a no.'))
for i in range(a,b):
    print(b)
    if n<=len(e):
        print(e[n-1])
        break
    else:
        e.append(e[i-1]+e[i])
        try:
            if e[len(e)-1]==e[n-1]:
                print(e[n-1])
                break
        except:
            pass

我希望我对这个问题很清楚。由于我是初学者,因此欢迎提出任何简单的建议。如果我在做任何可怕的事情,也请指出。 谢谢

解决方法

简单代码

e = [0,]
a,b = 0,1
n = int(input('enter a no.'))
for i in range(1,n):
    a,b = b,a + b
    e.append(a)

print(e[n-1],e)

结果是

21 [0,1,2,3,5,8,13,21]
,

嘿@Jayasri Palanisamy之所以b的值没有增加是因为它只执行一次。当b= len(e)+5 = 7

e=[0,1]
a=1
n=int(input('enter a no.'))
b = len(e)+n
for i in range(a,b):
print(b)
if n<=len(e):
    print(e[n-1])
    break
else:
    e.append(e[i-1]+e[i])
    try:
        if e[len(e)-1]==e[n-1]:
            print(e[n-1])
            break
    except:
        pass

这将为您提供正确的答案,但这也不是一个好的解决方案(我的意思是,有一种方法可以做到这一点并且更简单)。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...