Discuss / Python / python 打卡 2020.03.06 解决难题的感觉真好~

python 打卡 2020.03.06 解决难题的感觉真好~

Topic source

【知识点摘要】:

要创建一个generator,有很多种方法。

第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator:

定义generator的另一种方法。如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator:

要把fib函数变成generator,只需要把print(b)改为yield b就可以了:

变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。

请注意区分普通函数和generator函数,普通函数调用直接返回结果:

generator函数的“调用”实际返回一个generator对象:

【作业答案】:已通过测试

def triangles():

    line = [1]         # 第一行就一个元素1

    while True:

        yield line

        # 生成下一行,表达式为 : [1] + 上一行的两个元素之和 + [1]

        line = [1] + [line[i] + line[i + 1] for i in range(len(line) - 1)] + [1]


  • 1

Reply