python实现杨辉三角思路

yipeiwu_com6年前Python基础

程序输出需要实现如下效果:

[1]

[1,1]

[1,2,1]

[1,3,3,1]

......

方法:迭代,生成器

def triangles()

L = [1]

while True:

yiled L

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

n = 0

for t in triangles():

print(t)

n += 1

if n == 10:

break

实现逻辑:

1.由于yield为生成器中断输出,所以有了第一个次输出为[1]

2.继续while下面的yield后的循环,此时list长度为1,将其代入L中的len(L),得出[L[i]+L[i+1] for i in range(1-1)]得出为空值,所以yield L输出为[1,1]

3.此时len(L)值为2,代入得出[L[i]+L[i+1] for i in range(2-1)]为[L[i]+L[i+1] for i in range(1)],i能取值为0,代入后为[L[0]+L[1]],而L[0]和L[1]的值均为1(有上面结果可知),所以输出结果为[1,2,1]

4.由第三条可知此时len(L)值为3,代入得出[L[i]+L[i+1] for i in range(2)],i取值为0和1,通过循环输出有两个值,均为3,分别由[L[0]+L[1]],[L[1]+L[2]]

以此类推即可

相关文章

对python中的logger模块全面讲解

logging模块介绍 Python的logging模块提供了通用的日志系统,熟练使用logging模块可以方便开发者开发第三方模块或者是自己的Python应用。同样这个模块提供不同的日...

Python实现mysql数据库更新表数据接口的功能

前言 昨天,因为项目需求要添加表的更新接口,来存储预测模型训练的数据,所以自己写了一段代码实现了该功能,在开始之前,给大家分享python 操作mysql数据库基础: #coding...

python从子线程中获得返回值的方法

如下所示: # coding:utf-8 import time from threading import Thread def foo(number): time.s...

Django框架的中的setting.py文件说明详解

Django框架的中的setting.py文件说明详解

1.加载数据库,数据库的配置不能写死在seting.py文件中,下面的方式是读取另外一个文件,配置数据库: config = '' with open(os.path.join(BA...

Python自然语言处理 NLTK 库用法入门教程【经典】

本文实例讲述了Python自然语言处理 NLTK 库用法。分享给大家供大家参考,具体如下: 在这篇文章中,我们将基于 Python 讨论自然语言处理(NLP)。本教程将会使用 Pyth...