Skip to main content
 首页 » 编程设计

Python 和 fibonnaci [列表] 生成器

2025年05月04日21youxin

我一直在尝试使用 Python 3 生成斐波那契数列。由于我完全不熟悉编程,所以我使用的是基本工具。在这种情况下列出,作为练习。 我遇到的问题是在我希望它停止时停止序列。

例如,我需要一个高达 100 的斐波那契数列,所以我这样写:

fib = [1,2] 
n = 0 
while max(fib) <= 100: 
    fib.append(fib[n]+fib[n+1]) 
    n = n+1 
 
print(fib) 
print(max(fib)) 
print(n) 

print() 语句仅供我使用,因此我知道发生了什么。

作为返回,我得到:

[1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144] 
144 
9 

所以一切正常,除了我打算在超过 100 之前完成排序。 那为什么我有144呢?我做错了什么?

请您参考如下方法:

一些事情:

  • 斐波那契数列以 1, 1, 2, ... 开头
  • 您检查最大元素是否小于 100,而不是检查下一个 元素是否小于 100。

所以,第一个显然很容易改正,只需将fib声明为[1, 1]即可。

至于第二个,您可以使用 while True 循环,然后如果下一个元素大于 100 则中断 >,或者你可以有一个存储下一个的变量,并检查它是否小于 100 作为 while 的评估。

所以,在这一行之后:

fib = [1, 1] 

您可以使用:

next = 2 
while next <= 100: 
    fib.append(next) 
    next += fib[-2] 

或

while True: 
    next = fib[-2] + fib[-1] 
    if next > 100: 
        break 
    fib.append(next) 

两者都给出:

[1, 2, 3, 5, 8, 13, 21, 34, 55, 89]