您的位置:首页 > 编程语言 > Python开发

python实现杨辉三角(使用生成器generator)

2015-09-01 18:45 399 查看
 杨辉三角定义如下

1
1   1
1   2   1
1   3   3   1
1   4   6   4   1
1   5   10  10  5   1


#将杨辉三角的每一行看成一个list,写一个生成器(generator),不断输出下一行list

def triangel(n):

    L=[1]                                                                 #定义一个list[1]

    while True:

        yield L                                                           #打印出该list

        L=[L[x]+L[x+1] for x in range(len(L)-1)]        #计算下一行中间的值(除去两边的1)

        L.insert(0,1)                                                 #在开头插入1

        L.append(1)                                                 #在结尾添加1

        if len(L)>10:                                                 #仅输出10行

            break

#生成一个generator对象,然后通过for循环迭代输出每一行

a=angel(10)

for i in a:

    print(i)

注:普通函数和generator生成器的区别:

1.普通函数调用直接返回结果,generator函数的调用,返回一个generator对象;(调用generator时可以先创建一个对象,再用next()方法不断获得下一个返回值,但实际中通常用for循环实现)

2.generator在执行过程中,遇到yield就中断,下次又继续执行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: