029. 使用for循环和range函数生成斐波那契数列的前10个数

在 Python 中,可以使用 for 循环和 range() 函数来生成斐波那契数列的前 10 个数。斐波那契数列的定义是:每个数等于前两个数之和,且前两个数分别为 0 和 1。

示例代码

# 定义一个函数,生成斐波那契数列的前 n 个数
def fibonacci(n):
    # 初始化前两个斐波那契数
    a, b = 0, 1
    # 创建一个列表来存储斐波那契数列
    fib_sequence = []

    # 使用 for 循环和 range() 函数生成斐波那契数列
    for _ in range(n):
        fib_sequence.append(a)  # 将当前的斐波那契数添加到列表中
        a, b = b, a + b  # 更新斐波那契数列的值

    return fib_sequence

# 生成斐波那契数列的前 10 个数
fib_sequence = fibonacci(10)

# 打印结果
print("斐波那契数列的前 10 个数:")
print(fib_sequence)

运行结果

运行上述代码后,输出如下:

斐波那契数列的前 10 个数:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

代码解释

定义函数

  • 定义了一个函数 fibonacci(n),用于生成斐波那契数列的前 n 个数。

初始化变量

  • 初始化两个变量 ab,分别表示斐波那契数列的前两个数(01)。

  • 创建一个空列表 fib_sequence,用于存储生成的斐波那契数列。

使用 for 循环和 range() 函数

  • 使用 for _ in range(n) 创建一个循环,循环次数为 n

  • 在每次循环中,将当前的斐波那契数 a 添加到列表 fib_sequence 中。

  • 更新变量 ab,使其分别变为下一个斐波那契数。

返回结果

  • 函数返回生成的斐波那契数列。

调用函数并打印结果

  • 调用函数 fibonacci(10),生成斐波那契数列的前 10 个数。

  • 使用 print() 函数打印结果。

扩展:生成无限斐波那契数列

如果需要生成无限的斐波那契数列,可以使用生成器函数。以下是一个示例:

# 定义一个生成器函数,生成无限的斐波那契数列
def fibonacci_infinite():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

# 使用生成器函数生成无限的斐波那契数列
fib_sequence = fibonacci_infinite()

# 打印前 10 个斐波那契数
print("斐波那契数列的前 10 个数:")
for _ in range(10):
    print(next(fib_sequence), end=" ")

运行结果

运行上述代码后,输出如下:

斐波那契数列的前 10 个数:
0 1 1 2 3 5 8 13 21 34

注意事项

range(n)

  • range(n) 生成一个从 0 到 n-1 的整数序列,适合用于控制循环次数。

生成器函数

  • 如果需要生成无限的斐波那契数列,可以使用生成器函数。生成器函数通过 yield 语句逐个返回值,而不是一次性返回所有值,这使得生成器在处理大数据集时非常高效。

视频讲解

BiliBili: 视睿网络-哔哩哔哩视频 (bilibili.com)