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
个数。
初始化变量:
-
初始化两个变量
a
和b
,分别表示斐波那契数列的前两个数(0
和1
)。 -
创建一个空列表
fib_sequence
,用于存储生成的斐波那契数列。
使用 for
循环和 range()
函数:
-
使用
for _ in range(n)
创建一个循环,循环次数为n
。 -
在每次循环中,将当前的斐波那契数
a
添加到列表fib_sequence
中。 -
更新变量
a
和b
,使其分别变为下一个斐波那契数。
返回结果:
- 函数返回生成的斐波那契数列。
调用函数并打印结果:
-
调用函数
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)