Python极简代码实现杨辉三角示例代码

yipeiwu_com5年前Python基础

杨辉三角,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。

把每一行看做一个list,写一个generator,不断输出下一行的list

实现下列输出效果:

# [1] 
# [1, 1] 
# [1, 2, 1] 
# [1, 3, 3, 1] 
# [1, 4, 6, 4, 1] 
# [1, 5, 10, 10, 5, 1] 
# [1, 6, 15, 20, 15, 6, 1] 
# [1, 7, 21, 35, 35, 21, 7, 1] 
# [1, 8, 28, 56, 70, 56, 28, 8, 1] 
# [1, 9, 36, 84, 126, 126, 84, 36, 9, 1] 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

极简代码实现:

def triangles(): 
  L = [1] 
  while True: 
    yield L 
    L.append(0); 
    L = [L[i-1] + L[i] for i in range(len(L))] 
n = 0 
for t in triangles(): 
  print(t) 
  n = n + 1 
  if n == 10: 
    break 

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

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

2、generator在执行过程中,遇到yield就中断,下次又继续执行

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。

相关文章

分享Python字符串关键点

字符串是 Python 中最常用的数据类型。我们可以使用引号来创建字符串。python字符串关键点有下面几点: 1.一些引号分隔的字符 你可以把字符串看出是Python的一种数据类型...

浅谈Pandas:Series和DataFrame间的算术元素

如下所示: import numpy as np import pandas as pd from pandas import Series,DataFrame 一、Series与...

python数据预处理之将类别数据转换为数值的方法

在进行python数据分析的时候,首先要进行数据预处理。 有时候不得不处理一些非数值类别的数据,嗯, 今天要说的就是面对这些数据该如何处理。 目前了解到的大概有三种方法: 1,通过Lab...

Django静态资源URL STATIC_ROOT的配置方法

缘由   新手学习 Django 当配置好 HTML 页面后,就需要使用一些静态资源,如图片,JS 文件,CSS 样式等,但是 Django 里面使用这些资源并不是直接引用一下就好,还要...

python导入pandas具体步骤方法

Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。 Pandas的名称来自于面板数据(panel data)和python数据分析(da...