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就中断,下次又继续执行
相关文章推荐
- python+Eclipse+pydev环境搭建(转)
- Python - Headless Selenium WebDriver Tests using PyVirtualDisplay
- Python 随手记
- 基础知识(七)opencv、python、人脸框检测
- python 遇到的异常
- python 基于dns 轮询的业务检测
- 每日python(5)
- Z-Score数据标准化处理(python代码)
- python基础练习笔记
- 避免python Popen阻塞
- python 切片(slice)
- 任意格式文件转成字符串,传输之后,还原为原文件格式
- python中strip() 函数和 split() 函数的理解
- Python之os.system()找不到路径的原因
- Opencv_Python学习笔记--OpenCV中的GUI特性
- ssh批量登录并执行命令(python实现)
- python 正则表达式 学习笔记(不断补充ing)
- python的文档字符串
- python中时间格式
- python 函数递归 尾递归