标签:code while 代码执行 while语句 函数 暂停 数列 col current
根据程序员制定的规则循环生成数据,当条件不成立时则生成数据结束。数据不是一次性全部生成处理,而是使用一个,再生成一个,可以节约大量的内存。
两种方式创建生成器
# 创建生成器 my_generator = (i * 2 for i in range(5)) print(my_generator) # next获取生成器下一个值 # value = next(my_generator) # print(value) # 遍历生成器 for value in my_generator: print(value)
执行结果:
<generator object <genexpr> at 0x000001AF8E9C9510>
0
2
4
6
8
说明:
def my_g(): for i in range(3): yield i for i in my_g(): print(i)
执行结果:
0 1 2 Process finished with exit code 0
说明:
def fibonacci(num): a = 0 b = 1 # 记录生成fibonacci数字的下标 current_index = 0 while current_index < num: result = a a, b = b, a + b current_index += 1 # 代码执行到yield会暂停,然后把结果返回出去,下次启动生成器会在暂停的位置继续往下执行 yield result fib = fibonacci(5) # 遍历生成的数据 for value in fib: print(value)
执行结果:
0 1 1 2 3 Process finished with exit code 0
标签:code while 代码执行 while语句 函数 暂停 数列 col current
原文地址:https://www.cnblogs.com/liuxuelin/p/14249019.html