使用python的有限Fibonacci级数

使用python的有限Fibonacci级数,python,Python,我想写一个代码,将斐波那契数列打印到一个特定的数字。如果是那样的话,就说是30。 问题是它总是打印太多的1个数字,它将打印到34而不是21 l=[1,1] i=0 while l[i+1]<30: l.append(l[i]+l[i+1]) i+=1 print l l=[1,1] i=0 当l[i+1]时,你必须计算下一个项,看看它是否大于30 因此,您可以选择计算它,但不存储它(清洁溶液): 或者,使用现有脚本,只是不打印它(脏的解决方案): l=[1,1] i=0

我想写一个代码,将斐波那契数列打印到一个特定的数字。如果是那样的话,就说是30。 问题是它总是打印太多的1个数字,它将打印到34而不是21

l=[1,1]
i=0
while l[i+1]<30:
    l.append(l[i]+l[i+1])
    i+=1
print l
l=[1,1]
i=0

当l[i+1]时,你必须计算下一个项,看看它是否大于30

因此,您可以选择计算它,但不存储它(清洁溶液):

或者,使用现有脚本,只是不打印它(脏的解决方案):

l=[1,1]
i=0
而l[i+1]
l=[1,1]
i=0

当l[i+1]修改您的
条件时:

while (l[i]+l[i+1])<30:
while(l[i]+l[i+1])>打印(l)
[1, 1, 2, 3, 5, 8, 13, 21]

但当
l[i]
为13时,
l[i+1]
将为21,小于30。在添加到列表之前,您可能想检查
l[i]+l[i+1]
的结果?
l=[1,1]
i=0
while l[i+1]<30:
    l.append(l[i]+l[i+1])
    i+=1
print l[:-1]  # or l.pop(); print l
l=[1,1]
i=0
while l[i+1]<30:
    l.append(l[i]+l[i+1])
    i+=1
l.pop()
print l
while (l[i]+l[i+1])<30:
l=[1,1]
i=0
while (l[i]+l[i+1])<30:
    l.append(l[i]+l[i+1])
    i+=1

>>> print(l)
[1, 1, 2, 3, 5, 8, 13, 21]