python杨辉三角居中_python打印杨辉三角的两种方法及详解
艾斯压阵
1c950a7b02087bf4200394cdf1d3572c11dfcf23.jpg
一盏灯, 一片昏黄; 一简书, 一杯淡茶。 守着那一份淡定, 品读属于自己的寂寞。 保持淡定, 才能欣赏到最美丽的风景! 保持淡定, 人生从此不再寂寞。
最近在学习Python,回顾了一些最初的经典函数和算法
杨辉三角定义如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
方法一
使用zip函数
如图:
屏幕快照 2017-06-16 09.35.31.png
def triangles():
n = [1]
while True:
yield n
n = [x+y for x,y in zip([0] + n,n+[0])]
n = 0
for t in triangles():
print(t)
n = n + 1
if n == 10:
break
输出结果:
[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]
解析
n = [x+y for x,y in zip([0] + n,n+[0])]
当n=[1]时:
zip([0,1],[1,0])
通过
屏幕快照 2017-06-16 09.41.45.png
算出 n = [1,1]
以此类推
ps:zip()
1.定义:
zip([iterable, ...])
zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压)。
2.示例:
x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
xyz = zip(x, y, z)
print xyz
输出结果:
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
二维矩阵变换(矩阵的行列互换)
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print [ [row[col] for row in a] for col in range(len(a[0]))]
输出结果
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
方法二
屏幕快照 2017-06-16 09.46.49.png
代码:
def triangles():
L = [1] #定义L为一个只包含一个元素的列表
while True:
yield L #定义为生成器函数
L =[1] + [L[n] + L[n-1] for n in range(1,len(L))] + [1]
n = 0
for t in triangles():
print(t)
n = n + 1
if n == 10:
break
解析
输出:
第一行:L = [1]
len(L) = 1
range(1,1) = [] #此时, L[n-1] for n in range(1,len(L))] 这个for in 不执行
第二行:L = [1] + [L[n] + L[n-1] for n in [] ] + [1]
L = [1] + [1]
L = [1, 1]
len(L) = 2
range(1,2) = [1]
第三行:L = [1] + [L[n] + L[n-1] for n in [1]] + [1]
L = [1] + [ L[1] + L[1-1] ] + [1]
L = [1] + [ L[1] + L[0] ] + [1]
L = [1] + [ 1 + 1] + [1]
L = [1, 2, 1]
以此类推
python杨辉三角居中_python打印杨辉三角的两种方法及详解相关推荐
- python统计汉字个数是_python统计中文字符数量的两种方法
方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...
- python怎么统计多少字符_python统计中文字符数量的两种方法
方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...
- python获取剪切板图片_python 获取剪切板内容的两种方法
第一种 # -*- coding: utf-8 -*- # @Time : 2020/3/16 21:26 # @File : get_text_from_cupboard_13.py # @Auth ...
- python爬取股票图_python 股票数据爬取(两种方法)
股票HTML网页分析: 东方财富网可以看到股票信息: http://quote.eastmoney.com/stocklist.html 查看源代码: R001(201008)R004(201010) ...
- python类的命名空间_Python之关于类变量的两种赋值区别详解
我就废话不多说了,还是直接看代码吧! # -*- coding:utf-8 -*- #面试题,写一个方法,将一行字符串中所有的单词数量统计出来 class Person(object): TAG = ...
- python字典取值_python 字典中取值的两种方法小结
python 字典中取值的两种方法小结 如下所示: a={'name':'tony','sex':'male'} 获得name的值的方式有两种 print a['name'],type(a['name ...
- python骂人的程序_Python实现敏感词过滤的4种方法
在我们生活中的一些场合经常会有一些不该出现的敏感词,我们通常会使用*去屏蔽它,例如:尼玛 -> **,一些骂人的敏感词和一些政治敏感词都不应该出现在一些公共场合中,这个时候我们就需要一定的手段去 ...
- python统计中文字符的个数_python统计中文字符数量的两种方法
方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...
- python逢7跳过_python实现逢七拍腿小游戏的思路详解
逢七拍腿游戏 几个小朋友在一起玩逢七拍腿的游戏,从1开始数数,当数到7的倍数或者尾号是7时,拍一下腿.现在从1数到99,假设每个人都没有错,计算一下共要拍腿几次? 第一种实现思路:通过在for循环语句 ...
最新文章
- CUDA Samples: Image Process: BGR to BGR565
- 借书证信息管理系统,C语言实现
- Linux入门——一些linux基础
- python 中__name__ = '__main__' 的作用
- if判断用户名 linux,linux shell 之if-------用if做判断
- 旺财速啃H5框架之Bootstrap(五)
- linux钟java运行命令,在java中运行linux命令
- php 实时查看公众号加粉数据,公众号实时涨粉数据怎么查看
- SpringBoot+SpringCloud —— 使用Feign消费服务
- Linux性能监控工具
- win32开发(自定义消息)
- 【壁纸小程序】搭建自己的壁纸小程序-微信抖音双端
- Android萤石云视频缩放
- 家用计算机中PCB板材质,主流的PCB板材料有哪些分类?
- 猿如意|程序员的如意神器之【chat GPT】测评。
- kali初使用之zsh
- Could not find resource xxx/xxxx/xxx.xml报错解决
- Tomcat源码解析:环境搭建
- Netty - 探究PageCache磁盘高速缓存
- 4. 非监督学习与强化学习简介
热门文章
- java里面有控制器吗_java怎么运行控制器里的类 java控制台输入类以及
- 用oracle存储过程取一张表里的数据放入其他表 游标取值
- Python基础4_列表,元祖
- 进程和线程的区别?什么时候用进程?什么时候用线程?----看到好的复制到自己的园子里哈哈...
- 服务器响应的生成:HTTP响应报头——HttpServletResponse接口的应用
- mysql中engine=innodb和engine=myisam的区别 (转)
- 读书笔记2013第10本:《学得少却考得好Learn More Study Less》
- Box2dの自定义多边形
- 【转】“无法在Web服务器上启动调试。您不具备调试此应用程序的权限,此项目的URL位于Internet区域”错误提示的解决...
- 空空排错日志:OCS错误日志14501等解决办法