对于生成器的说明参考廖雪峰的教程,原文地址:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014317799226173f45ce40636141b6abc8424e12b5fb27000
以及:https://www.jianshu.com/p/b709747d125e
生成器中通常用while True:,对此一直感到困惑,后来明白了生成器函数的运行顺序后就理解了,可以把它当作一个不断执行的中断,并且能把参数也保留到下一次计算的过程。
以下是将个人理解作为注释的代码(来自于廖雪峰的教程),执行步骤按照步骤1~9作为例子说明运行过程。
def triangles():
L = [1]
while True:
yield L
# 步骤2,步骤7
# 遇见关键字yield ,triangles挂起中断
# 返回L
# 下一次才继续执行以下代码
# 循环后再次遇见下一次的关键词,中断后返回这一次的L
G = [0] + L + [0]
L = [ G[i] + G[i + 1] for i in rang