代码
def fibonacci(n):
    fib_list = [0, 1]  # 初始的斐波那契数列,包含0和1
    while len(fib_list) < n:
        next_number = fib_list[-1] + fib_list[-2]
        fib_list.append(next_number)
    return fib_list[:n]
# 示例:计算前10个斐波那契数
n = 10
result = fibonacci(n)
print(f"前{n}个斐波那契数列: {result}")
概念
斐波那契数列前两个数都是1,从第3个数开始,每个数是前两个数相加的和,可以记为f(n) = f(n - 1) + f(n - 2)因此,斐波那契数列的前几项依次是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …
代码功能
计算前10项的斐波那切数列
代码解释
这段代码使用 while 循环来生成斐波那契数列的列表。让我逐步解释:
- 条件: while len(fib_list) < n:表示当斐波那契数列的列表长度小于所需的项数n时,继续执行循环。
- 生成下一个数: next_number = fib_list[-1] + fib_list[-2]计算当前列表最后两个元素的和,即前两个斐波那契数的和,得到下一个斐波那契数。
- 将下一个数添加到列表: fib_list.append(next_number)将计算得到的下一个斐波那契数添加到列表末尾。
- 循环条件更新: while循环继续,直到列表长度达到或超过所需的项数n。
整个循环的目的是生成一个包含前 n 个斐波那契数的列表。在每一步中,计算新的斐波那契数,将其添加到列表中,然后重复这个过程,直到得到所需数量的斐波那契数。最终,函数返回一个包含前 n 个斐波那契数的列表。
扩展
也可以使用递归来实现,但是我劝你千万不要这么做,应为这样是个很烂的实现方式
def fib(n):
    if n in (1, 2):
        return 1
    return fib(n - 1) + fib(n - 2)
# 打印前20个斐波那契数
for i in range(1, 21):
    print(fib(i))



















