想了解python实现杨辉三角的几种方法代码实例的相关内容吗,看,月亮在跳舞在本文为您仔细讲解python实现杨辉三角的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:python实现杨辉三角,python杨辉三角实现方法,下面大家一起来学习吧。

方法一:迭代

def triangle_1(x):

"""

:param x: 需要生成的杨辉三角行数

:return:

"""

triangle = [[1], [1, 1]] # 初始化杨辉三角

n = 3 # 从第三行开始计数,逐行添加

while n <= x:

for i in range(0, n-1):

if i == 0:

# 添加初始列表[1,1],杨辉三角每行的首位和末位必为1

triangle.append([1, 1])

else:

# 逐位计算,并插入初始列表中

triangle[n-1].insert(i, triangle[n - 2][i] + triangle[n - 2][i - 1])

n += 1

return triangle

x = 11

triangle = triangle_1(x)

# 遍历结果,逐行打印

for i in range(x):

print(' '.join(str(triangle[i])).center(100)) # 转为str,居中显示

方法二:生成器

def triangle_2(n):

"""

:param n: 需要生成的杨辉三角行数

:return:

"""

triangle = [1] # 初始化杨辉三角

for i in range(n):

yield triangle

triangle.append(0) # 在最后一位加个0,用于计算下一行

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

# 从生成器取值

for i in triangle_5(10):

print(''.join(str(i)).center(100)) # 格式化输出

方法三:递归

杨辉三角特性:

【1,1】=【0,1】+【1,0】

【1,2,1】=【0,1,1】+【1,1,0】

【1,3,3,1】=【0,1,2,1】+【1,2,1,0】

【1,4,6,4,1】=【0,1,3,3,1】+【1,3,3,1,0】

第n行等于第n-1行分别首尾补0,然后按位相加

def triangle_4(n):

"""

:param n:需要生成的杨辉三角行数

:return:

"""

triangle = [1] # 初始化杨辉三角

if n == 0:

return triangle

return [x+y for x, y in zip([0] + triangle_4(n - 1), triangle_4(n - 1) + [0])]

for i in range(10):

print(''.join(str(triangle_4(i))).center(100))

相关文章

pythonfor杨辉三角,python实现杨辉三角 python实现杨辉三角的几种方法代码实例相关推荐

  1. python杨辉三角代码,python实现杨辉三角的几种方法代码实例

    方法一:迭代 def triangle_1(x): """ :param x: 需要生成的杨辉三角行数 :return: """ trian ...

  2. python列表的排序方法_pythonlist排序的两种方法及实例

    本文主要介绍了python list排序的两种方法及实例讲解.具有很好的参考价值,下面一起来看下吧 对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排 ...

  3. python如何删除代码_Python列表删除的三种方法代码分享

    1.使用del语句删除元素 >>> i1 = ["a",'b','c','d'] >>> del i1[0] >>> prin ...

  4. python 运算符重载_Python 炫技操作:模块重载的五种方法

    点击上方"Python编程时光",选择"加为星标"第一时间关注Python技术干货!明哥原创的200页<PyCharm 中文指南> 震撼发布 系列文 ...

  5. Python列表去重的几种方法和实例

    Python列表去重的几种方法和实例 在 Python 中,列表去重有多种方法,下面分别介绍这些方法的实现. 方法一:使用 set() 函数 set() 函数可以将列表转换成集合,集合中不允许有重复的 ...

  6. Python 炫技操作(九):调用函数的九种方法

    系列导读 Python 炫技操作(一):条件语句的七种写法 Python 炫技操作(二):合并字典的七种方法 Python 炫技操作(三):判断是否包含子串的七种方法 Python 炫技操作(四):连 ...

  7. python变量域名_Python实现从url中提取域名的几种方法

    从url中找到域名,首先想到的是用正则,然后寻找相应的类库.用正则解析有很多不完备的地方,url中有域名,域名后缀一直在不断增加等.通过google查到几种方法,一种是用Python中自带的模块和正则 ...

  8. python实现反转链表讲解_基于Python实现2种反转链表方法代码实例

    题目: 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你 ...

  9. python中的object是什么意思_Python object类中的特殊方法代码讲解

    python版本:3.8class object: """ The most base type """ # del obj.xxx或del ...

  10. python list列表排序的两种方法及实例讲解

    对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False) Py ...

最新文章

  1. orm连接mysql_Django项目如何使用ORM连接MySQL
  2. Linux下使用ssh动态验证码登陆机器
  3. Javascript内置对象新增接口列表
  4. 10个 Python 工程师,9个不合格!
  5. 快速目标检测--Object detection at 200 Frames Per Second
  6. vue实现进入页面表单聚焦
  7. java HashMap的实现原理
  8. 概率编程库Pymc3案例之Coal mining disasters
  9. 附加到IIS进程调试页面
  10. springboot启动后进页面出现错误(java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required)
  11. JZOJ 5390. 【NOIP2017提高A组模拟9.26】逗气
  12. libgdx游戏引擎开发笔记(十三)SuperJumper游戏例子的讲解(篇七)----各个物体的创建及其碰撞检测...
  13. tensorflow图片预处理,随机亮度,旋转,剪切,翻转。
  14. 【番外篇】利率二叉树模型对冲
  15. linux 修改路由表 永久,CentOS 6.9永久设置静态路由表以及路由表常用设置
  16. 美国电气与计算机工程专业排名,美国大学电气工程专业排名情况
  17. 加载天地图服务出现空吧图片类似404图片加载失败的效果
  18. 农行c3开发语言,【解密】C3境外系统全面崛起,农行谱写新篇章
  19. 第三届先进材料和智能制造国际学术会议暨前沿金属材料与仿真设计国际学术会议(AMMSD 2022)
  20. 科技部马颂德:中国积极支持开放源代码软件发展

热门文章

  1. Hadoop集群配置(二)免密登录和集群配置
  2. Java宠物管理系统(运用接口简易版)
  3. 地震(earthquake)
  4. MMKV_高性能MMKV数据交互分析-MMKV初始化
  5. java计算机毕业设计智慧校园食堂点餐系统源码+mysql数据库+系统+lw文档+部署
  6. 人工智能-动物识别专家系统Python实现
  7. SBUS协议:SBUS解析与合成
  8. AIML应答机器人(二)java实现
  9. ug中文字大小设置_UG编辑文字怎么放大或缩小?
  10. 十五届恩智浦智能车杀青