在杨辉三角形中,有一个很大的规律:
就是每一行的第一个和最后一个都是1,那中间的数据是怎么生成的呢?
中间的数据其实就是一个公式:(假设n表示行,m表示列)

ist1[n][m] = list1[n-1][m-1] + list1[n-1][m]

  • 杨辉三角会用到yield

generator(生成器)和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。 这里的杨辉三角代码其实就是一个生成器,而yield的作用就是惰性生成一行杨辉三角并且输出,对于生成器需要调用next()时,才会继续执行语句。但是实际操作过程中,我们通常用for循环来代替next(),让生成器不断生成下一行。

  • 杨辉三角居中显示

先把数据类型转化为字符串类型,然后利用 ''.join() 来让一个列表的字符串连接在一起中间空格

下接下来代码实现

def triangle():   # 杨辉三角的计算N = [1]while True:yield N  # generator特点在于:在执行过程中,遇到yield就中断,并且返回值,下次又继续执行N.append(0)  # 每次都要在最后一位加个0,用于后续的叠加N = [N[i] + N[i - 1] for i in range(len(N))]def print_triangle(x):    # 杨辉三角的居中对齐和输出a = 0for t in triangle():  # 这里可以每次调用一个N(得力于Yield函数)new_list = []for i in range(len(t)):new_list.append(str(t[i]))  # 将数字列表转化为字符串列表string = ' '.join(new_list)     # 字符串相连接中间一个空格width = x * 10                  # 设置字符宽度print(string.center(width))     # 居中对齐并输出a += 1if a == x:                      # 判断输入几行breakline_number = int(input("请输入打印几行: "))
print_triangle(line_number)  # 打印行
复制代码

python实现杨辉三角相关推荐

  1. python杨辉三角居中_利用python打印杨辉三角

    用python打印杨辉三角 介绍 杨辉三角,是初高中时候的一个数列,其核心思想就是说生成一个数列,该数列中的每一个元素,都是之前一个数列中,同样位置的元素和前一个元素的和. 正好在python中,也就 ...

  2. 用python打印杨辉三角

    杨辉三角的形式如下图(图片来自维基百科)所示: 用列表的形式呈现如下: [1] [1, 1] [1, 2, 1] [1, 3, 3, 1] [1, 4, 6, 4, 1] [1, 5, 10, 10, ...

  3. python语言输入杨辉三角_?新手求教:请问怎样用python 显示杨辉三角,任意输入一个数N,输出一个N 1层的杨辉三角。...

    如何用python输出杨辉三角 iangles里用到了yield,yield 的作用就是把一个函数变成一个 generator 用python语言输出九九乘法表 杨辉三角 求代码 1.九九乘法表def ...

  4. Python打印杨辉三角-生成器语法yield的理解

    ###先看代码. def triangles():# 定义最初的数据 1 ,存到列表中lt = [1]# 进入循环while True:# 使用yield语句产生一个生成器,返回当前列表yield l ...

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

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

  6. 用python实现杨辉三角的几种不同方式

    杨辉三角的概念 比较详细的知识可以看这里,在杨辉三角中,每个数是它左上方和右上方的数的和. 1/ \1 1/ \ / \1 2 1/ \ / \ / \1 3 3 1/ \ / \ / \ / \1 ...

  7. python 实现杨辉三角(依旧遗留问题)

    1 #! usr/bin/env python3 2 #-*- coding :utf-8 -*- 3 print('杨辉三角的generator') 4 def triangles(): 5 6 N ...

  8. python生成器杨辉三角_python 生成器生成杨辉三角的方法(必看)

    用Python写趣味程序感觉屌屌的,停不下来 #生成器生成展示杨辉三角 #原理是在一个2维数组里展示杨辉三角,空的地方用0,输出时,转化为' ' def yang(line): n,leng=0,2* ...

  9. 用python编写杨辉三角金字塔_用python实现三道简单算法题:杨辉三角,蛇形矩阵,金字塔...

    分享几道简单的python打印输出的问题,本质上都是可以将其分解成一个大循环之中有几个小循环. 1.杨辉三角 主要特点: 每个数等于它上方两数之和. 每行数字左右对称,由1开始逐渐变大. 每行端点与结 ...

  10. python输出杨辉三角啊二维数组_用Python输出一个杨辉三角的例子

    这篇文章主要介绍了用Python和erlang输出一个杨辉三角的例子,同时还提供了一个erlang版杨辉三角,需要的朋友可以参考下 关于杨辉三角是什么东西,右转维基百科:杨辉三角 稍微看一下直观一点的 ...

最新文章

  1. 国产scrum敏捷开发工具- leangoo领歌
  2. 升级nginx以支持http2的方法
  3. 百度新闻后台逻辑流程分析
  4. 计算收益复利的小例子
  5. 九、ES6的箭头函数
  6. docker-compose的介绍与安装(结合官方文档)
  7. meshgrid 的使用方法
  8. webrtc自动增益
  9. uiautomator使用中文参数
  10. 拓端tecdat|R语言中广义线性模型(GLM)中的分布和连接函数分析
  11. JAVA编写俄罗斯方块
  12. 新版FMEA软件:特殊特性自动分类 免费申请试用(FMEAHunter)
  13. matlabplot———散点图
  14. 基于AndroidStudio的花艺分享平台APP设计
  15. php面向对象编程的特性,什么是面向对象编程(OOP)?面向对象编程的特点
  16. Android开发实例详解之IMF(Android SDK Sample—SoftKeyboard)
  17. 企业做短视频常见的3问题:太真实了
  18. 前端云原生——微信小程序云服务配置
  19. 《MongoDB》 数组操作
  20. 汇编语言程序设计V-贺利坚-专题视频课程

热门文章

  1. 计算机网络(第七版)谢希仁
  2. Win XP 经典壁纸拍摄地 24 年后变样了
  3. “kuangbin带你飞”专题计划——专题一:简单搜索
  4. 百科不全书之Python进阶
  5. voip|网络电话,软件实现电信座机
  6. 抽签小程序,妈妈再也不用担心谁洗碗(分配任务)了,so easy
  7. python 实现熵权法确定各指标的权重
  8. 盘点2021年10个顶级数据分析软件,及优缺点对比
  9. 软件测试项目实战步骤
  10. idea下载Scala插件(详细)