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


Posted in Python onApril 10, 2017

用Python写趣味程序感觉??诺模?2幌吕?/p>

#生成器生成展示杨辉三角
#原理是在一个2维数组里展示杨辉三角,空的地方用0,输出时,转化为' '
def yang(line):
  n,leng=0,2*line - 1
  f_list = list(range(leng+2)) #预先分配,insert初始胡会拖慢速度,最底下一行,左右也有1个空格
  #全部初始化为0
  for i,v in enumerate(f_list):
    f_list[v] = 0
  ZEROLIST = f_list[:] #预留一个全零的数组
  f_list[leng//2] = 1 #初始的第一行
  re_list =f_list[:]
  n=0
  while n < line:
    n = n+1
    yield re_list
    f_list,re_list = re_list[:],ZEROLIST[:]
    start = leng//2-n #计算一行中第一个1的位置
    end = start + 2*n #计算一行中最后一个1的位置
    while start <= end:
      re_list[start] = f_list[start - 1] + f_list[start+1] #不管是不是1,该位置的数字,都是上一行该位置的左右两个数的和
      start = start + 1
  return 'done'

def printList(L):
  n = 0
  p_str = ''
  for value in L:
    ch = str(value)
    if value == 0:
      ch = ' '
    p_str = p_str + ch
  print(p_str)

for value in yang(8):
  printList(value)

以上这篇python 生成器生成杨辉三角的方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python天气预报采集器实现代码(网页爬虫)
Oct 07 Python
python中的lambda表达式用法详解
Jun 22 Python
python中退出多层循环的方法
Nov 27 Python
pycharm配置pyqt5-tools开发环境的方法步骤
Feb 11 Python
Python实现的爬取百度文库功能示例
Feb 16 Python
Python的高阶函数用法实例分析
Apr 11 Python
Python用Try语句捕获异常的实例方法
Jun 26 Python
python3实现微型的web服务器
Sep 03 Python
节日快乐! Python画一棵圣诞树送给你
Dec 24 Python
python处理RSTP视频流过程解析
Jan 11 Python
python3读取文件指定行的三种方法
May 24 Python
Python尝试实现蒙特卡罗模拟期权定价
Apr 21 Python
Python贪吃蛇游戏编写代码
Oct 26 #Python
OpenCV实现人脸识别
Apr 07 #Python
python使用opencv进行人脸识别
Apr 07 #Python
Python 实现链表实例代码
Apr 07 #Python
python中如何使用朴素贝叶斯算法
Apr 06 #Python
python获取当前运行函数名称的方法实例代码
Apr 06 #Python
python爬取w3shcool的JQuery课程并且保存到本地
Apr 06 #Python
You might like
解析如何用php screw加密php源代码
2013/06/20 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
2015/08/08 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
JavaScript 数组的 uniq 方法
2008/01/23 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
js和php如何获取当前url的内容
2013/09/22 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
2015/03/24 Javascript
javascript中关于&amp;&amp; 和 || 表达式的小技巧分享
2015/04/10 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
2015/11/06 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
vue2.0 常用的 UI 库实例讲解
2017/12/12 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
Python数据库的连接实现方法与注意事项
2016/02/27 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
django2.2安装错误最全的解决方案(小结)
2019/09/24 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
OpenCV Python实现拼图小游戏
2020/03/23 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
python 实现数据库中数据添加、查询与更新的示例代码
2020/12/07 Python
html5 利用canvas实现超级玛丽简单动画
2013/09/06 HTML / CSS
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
应聘教师推荐信
2013/10/31 职场文书
财务经理的岗位职责
2013/12/17 职场文书
产品质量承诺书
2014/03/27 职场文书
新闻发布会主持词
2014/03/28 职场文书
农村文化活动总结
2014/08/28 职场文书
捐助感谢信
2015/01/22 职场文书
小学生读书笔记范文
2015/06/30 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书
MySQL连接控制插件介绍
2021/09/25 MySQL
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js