📜  Python 打印斐波那契数列(1)

📅  最后修改于: 2023-12-03 14:46:15.319000             🧑  作者: Mango

Python 打印斐波那契数列

斐波那契数列指的是以下数列: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...

即第 1 和第 2 个数都是 1,之后的每个数都是由前两个数相加而得出。

在 Python 中,我们可以使用循环或递归的方式来打印斐波那契数列。

使用循环
def fibonacci(n):
    a, b = 1, 1
    for i in range(n):
        yield a
        a, b = b, a + b

# 打印前 10 个斐波那契数
for i in fibonacci(10):
    print(i)

输出为:

1
1
2
3
5
8
13
21
34
55

使用循环的方式比较简单,我们定义两个初始值为 1 的变量 a 和 b,然后使用 for 循环打印出前 n 个斐波那契数。

这里我们使用了 yield 关键字,可以使函数成为一个生成器(generator),这样可以避免使用列表将斐波那契数列全部保存。

使用递归
def fibonacci(n):
    if n == 1 or n == 2:
        return 1
    else:
        return fibonacci(n - 1) + fibonacci(n - 2)

# 打印前 10 个斐波那契数
for i in range(1, 11):
    print(fibonacci(i))

输出为:

1
1
2
3
5
8
13
21
34
55

使用递归的方式虽然代码量比较少,但是效率比较低。因为递归会造成函数的多次调用,相当于多次计算,造成了时间和空间的浪费。

因此,建议在实际开发中使用循环的方式来实现打印斐波那契数列。