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

yipeiwu_com5年前Python基础

用Python写趣味程序感觉屌屌的,停不下来

#生成器生成展示杨辉三角
#原理是在一个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实现的Google IP 可用性检测脚本

需要 Python 3.4+,一个参数用来选择测试搜索服务还是 GAE 服务。测试 GAE 服务的话需要先修改开头的两个变量。从标准输入读取 IP 地址或者 IP 段(形如 192.16...

Python通过调用有道翻译api实现翻译功能示例

本文实例讲述了Python通过调用有道翻译api实现翻译功能。分享给大家供大家参考,具体如下: 通过调用有道翻译的api,实现中译英、其他语言译中文 Python代码: # codi...

python 梯度法求解函数极值的实例

如下所示: #coding utf-8 a=0.001 #定义收敛步长 xd=1 #定义寻找步长 x=0 #定义一个种子x0 i=0 #循环迭代次数 y=...

python模拟enum枚举类型的方法小结

本文实例总结了python模拟enum枚举类型的方法。分享给大家供大家参考。具体分析如下: python中没有enum枚举类型,可能python认为这玩意压根就没用,下面列举了三种方法模...

聊聊Python中的pypy

聊聊Python中的pypy

PyPy是一个虚拟机项目,主要分为两部分:一个Python的实现和 一个编译器 PyPy的第一部分: 用Python实现的Python   其实这么说并不准确,准确得说应该是用rPy...