如何在Python中创建生成器函数:使用yield语句生成序列
发布时间:2023-06-21 16:11:50
生成器函数是一种特殊的函数,它使用 yield 语句来生成一个值序列。生成器函数在 Python 中非常常见,因为它们提供了一种简单的方法来生成无限的数据序列,而不会耗尽内存。
以下是使用 Python 中的 yield 关键字创建一个生成器函数的示例:
def my_generator(): # 使用 yield 生成一个值序列 yield 1 yield 2 yield 3 yield 4 yield 5 # 使用 for 循环打印生成器函数中的值序列 for value in my_generator(): print(value)
输出:
1 2 3 4 5
上面的示例将生成器函数用于输出固定的值序列。如果您想生成更复杂的序列,可以在函数中添加适当的逻辑代码,并使用 yield 语句来返回每个生成的值。
以下是一个更复杂的示例,它使用了 if 语句和 while 循环来生成序列。该序列输出 个数为 0,第二个数为 1,后续的数为前两个数之和,一共输出了 1000 个数:
def fibonacci():
a, b = 0, 1
counter = 0
while True:
if counter == 1000:
return
yield a
a, b = b, a + b
counter += 1
for num in fibonacci():
print(num)
输出:
0 1 1 2 3 5 8 13 21 ... 99194853094755497 160500643816367088 258623241511168180
