python实现杨辉三角
在杨辉三角形中,有一个很大的规律:
就是每一行的第一个和最后一个都是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实现杨辉三角相关推荐
- python杨辉三角居中_利用python打印杨辉三角
用python打印杨辉三角 介绍 杨辉三角,是初高中时候的一个数列,其核心思想就是说生成一个数列,该数列中的每一个元素,都是之前一个数列中,同样位置的元素和前一个元素的和. 正好在python中,也就 ...
- 用python打印杨辉三角
杨辉三角的形式如下图(图片来自维基百科)所示: 用列表的形式呈现如下: [1] [1, 1] [1, 2, 1] [1, 3, 3, 1] [1, 4, 6, 4, 1] [1, 5, 10, 10, ...
- python语言输入杨辉三角_?新手求教:请问怎样用python 显示杨辉三角,任意输入一个数N,输出一个N 1层的杨辉三角。...
如何用python输出杨辉三角 iangles里用到了yield,yield 的作用就是把一个函数变成一个 generator 用python语言输出九九乘法表 杨辉三角 求代码 1.九九乘法表def ...
- Python打印杨辉三角-生成器语法yield的理解
###先看代码. def triangles():# 定义最初的数据 1 ,存到列表中lt = [1]# 进入循环while True:# 使用yield语句产生一个生成器,返回当前列表yield l ...
- python杨辉三角代码,python实现杨辉三角的几种方法代码实例
方法一:迭代 def triangle_1(x): """ :param x: 需要生成的杨辉三角行数 :return: """ trian ...
- 用python实现杨辉三角的几种不同方式
杨辉三角的概念 比较详细的知识可以看这里,在杨辉三角中,每个数是它左上方和右上方的数的和. 1/ \1 1/ \ / \1 2 1/ \ / \ / \1 3 3 1/ \ / \ / \ / \1 ...
- python 实现杨辉三角(依旧遗留问题)
1 #! usr/bin/env python3 2 #-*- coding :utf-8 -*- 3 print('杨辉三角的generator') 4 def triangles(): 5 6 N ...
- python生成器杨辉三角_python 生成器生成杨辉三角的方法(必看)
用Python写趣味程序感觉屌屌的,停不下来 #生成器生成展示杨辉三角 #原理是在一个2维数组里展示杨辉三角,空的地方用0,输出时,转化为' ' def yang(line): n,leng=0,2* ...
- 用python编写杨辉三角金字塔_用python实现三道简单算法题:杨辉三角,蛇形矩阵,金字塔...
分享几道简单的python打印输出的问题,本质上都是可以将其分解成一个大循环之中有几个小循环. 1.杨辉三角 主要特点: 每个数等于它上方两数之和. 每行数字左右对称,由1开始逐渐变大. 每行端点与结 ...
- python输出杨辉三角啊二维数组_用Python输出一个杨辉三角的例子
这篇文章主要介绍了用Python和erlang输出一个杨辉三角的例子,同时还提供了一个erlang版杨辉三角,需要的朋友可以参考下 关于杨辉三角是什么东西,右转维基百科:杨辉三角 稍微看一下直观一点的 ...
最新文章
- 国产scrum敏捷开发工具- leangoo领歌
- 升级nginx以支持http2的方法
- 百度新闻后台逻辑流程分析
- 计算收益复利的小例子
- 九、ES6的箭头函数
- docker-compose的介绍与安装(结合官方文档)
- meshgrid 的使用方法
- webrtc自动增益
- uiautomator使用中文参数
- 拓端tecdat|R语言中广义线性模型(GLM)中的分布和连接函数分析
- JAVA编写俄罗斯方块
- 新版FMEA软件:特殊特性自动分类 免费申请试用(FMEAHunter)
- matlabplot———散点图
- 基于AndroidStudio的花艺分享平台APP设计
- php面向对象编程的特性,什么是面向对象编程(OOP)?面向对象编程的特点
- Android开发实例详解之IMF(Android SDK Sample—SoftKeyboard)
- 企业做短视频常见的3问题:太真实了
- 前端云原生——微信小程序云服务配置
- 《MongoDB》 数组操作
- 汇编语言程序设计V-贺利坚-专题视频课程