欢迎访问宙启技术站
智能推送

如何在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