另一种使用列表理解的方法。在

总是将问题分解成可消化的部分。每行都是其自身的一面镜子,所以让我们先来处理我们需要的一组数字。在

这将生成一个包含所有二次幂的字符串的列表,这就是它所生成的lines = []

for i in range(1,9):

lines.append([str(2**j) for j in range(i)])

但是如果我们只打印这个列表,a)它将只有一半,b)它将把数字混合在一起。我们需要用空格来缓冲数字。幸运的是,最后一行的任何列的位数都是最大的,因此:

首先,每一行需要多长时间(我们稍后需要),而且每列中最长的数字是多少。我们可以使用len将数字转换为上面的字符串。在

^{pr2}$

现在我有了打印字符串所需的一切(我们不再使用上面的数字):

因此,对于每一行,找出它的长度,然后通过在数组的左边填充空字符串将数组扩展到最长的一行的长度(为此,我们仍然假装只打印三角形的左半部分):for line in lines:

l = len(line)

line = [" "]*(b-len(line)) + line

在缓存了每一行之后,我们将生成一个新的数组,从中进行打印。通过zip()将行和缓冲区组合在一起,我们可以很容易地右对齐(^{})数字字符串,扩展到所需的长度。在out = []

for x,y in zip(line,buffers):

out.append(x.rjust(y))

记住,直到现在,我们还只是在处理金字塔的左半部。所以我们取输出数组,反转它(array[::-1]),然后取除第一个元素(array[1:])之外的所有元素,用一个字符串将其连接起来并打印出来。在print(" ".join(out+out[::-1][1:]))

喂!完成代码:lines = []

for i in range(1,9):

lines.append([str(2**j) for j in range(i)])

b = len(lines[-1])

buffers = [len(x) for x in lines[-1]]

for line in lines:

l = len(line)

line = [" "]*(b-len(line)) + line

out = []

for x,y in zip(line,buffers):

out.append(x.rjust(y))

print(" ".join(out+out[::-1][1:]))

输出:1

1 2 1

1 2 4 2 1

1 2 4 8 4 2 1

1 2 4 8 16 8 4 2 1

1 2 4 8 16 32 16 8 4 2 1

1 2 4 8 16 32 64 32 16 8 4 2 1

1 2 4 8 16 32 64 128 64 32 16 8 4 2 1

python使用循环嵌套显示数字金字塔_循环嵌套的数字金字塔相关推荐

  1. for循环insert怎么效率高_循环结构就这么简单,你还不会吗?

    Hello!大家好,我是编程小白,又见面了. 今天和大家一起学习循环结构,准备好了吗?Let's go 为什么要学循环结构 在业务要求中我们可能会碰见让我们定义100个变量或者输出100条语句,我们难 ...

  2. matlab朴素贝叶斯手写数字识别_从“手写数字识别”学习分类任务

    机器学习问题可以分为回归问题和分类问题,回归问题已经在线性回归讲过,本文学习分类问题.分类问题跟回归问题有明显的区别,回归问题是连续的数值,而分类问题是离散的类别,比如将性别分为[男,女],将图片分为 ...

  3. python在冒号处显示语法错误_深入解析Python小白学习【操作列表】

    1.遍历列表 需要对列表中的每个元素都执行相同的操作时,可使用for 循环: magicians = ['alice','david','carolina'] for magician in magi ...

  4. python中texttable库显示实时数据_用Python串口实时显示数据并绘图pyqtgraph

    用Python串口实时显示数据并绘图 使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 &qu ...

  5. java编写数字金字塔_用JAVA写数字金字塔

    今年的蓝桥杯中我遇到了一道题是关于数字金字塔的,那时候在比赛时可能是各方面的因素有思路但是没有实现,直到今天回过头来看,其实只要思路正确了题目就会迎刃而解了,其实数字金字塔的的解题思路就是把金字塔分成 ...

  6. linux下python脚本print中文显示不正确_在终端上运行python脚本,没有打印或显示-为什么?...

    通过艰苦的学习Python,第25课. 我尝试执行脚本,结果如下:myComp:lphw becca$ python l25 myComp:lphw becca$ 终端中不打印或显示任何内容. 这是密 ...

  7. vue-router 路由嵌套显示不出来_网络协议|OSI模型第三层网络层中的路由

    的IP协议 OSI第二层中用以太网协议定义了信息传输单元,简称为帧,它长这个样子. 同样的在OSI第三层中,会用 IP 协议去定义信息传输单元,简称为数据包,它长这个样子. 实际上,最终在网络上传输的 ...

  8. python条形图的动画显示水能时钟_[宜配屋]听图阁

    语言:Python IDE:Python.IDE 1.编写时钟程序,要求根据时间动态更新 2.代码思路 需求:5个Turtle对象, 1个绘制外表盘+3个模拟表上针+1个输出文字 Step1:建立Tu ...

  9. iframe嵌套显示整个页面_【HTML】框架标签lt;iframegt;

    说明 通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面. 格式语法: 注:该URL指向不同的网页. height 和 width 属性用来定义iframe标签的高度与宽度.属性默认以像素为单位 ...

最新文章

  1. Caffe中计算图像均值的实现(cifar10)
  2. [Err] 1449 - The user specified as a definer ('admin_isbox'@'localhost') does not exist
  3. 有关内存释放的一些问题
  4. 请你解释一下HashMap具体如何实现的?
  5. 【数据结构与算法】之深入解析十大常用排序算法的原理分析和算法实现
  6. efcore根据多个条件更新_EF Core 基础知识
  7. Azure 上使用 Windows Server Core 运行 ASP.NET Core 网站
  8. Python 脚本如何执行另一个脚本
  9. 《Servlet和JSP学习指南》一2.5 小结
  10. LIO-SAM探秘第三章之代码解析(三) --- mapOptmization.cpp (1)
  11. spring 中事物的说明
  12. 《java编程思想》
  13. tensorflow api训练3(ckpt转成pb和pbtxt)完结
  14. win7下vs2017安装奋斗纠结过程
  15. 数学中的两个重要极限公式
  16. 分享一个HandsFree Robot的国内机器人开源平台
  17. 计算机二级Python考试经验分享(含考试大纲及知识点总结)
  18. 对接高德接口心得,本篇不涉及具体接口
  19. 仿淘宝的详情页图片切换
  20. 打开pycharm时一直更新目录 updating indecix

热门文章

  1. python批量转换图片格式
  2. c语言班级成绩统计分析系统,C语言课设-班级成绩统计分析
  3. 《生物信息学》阅读笔记 (三):序列比对原理
  4. android实现浮动屏保,Android 屏保实现
  5. 重科计算机网络,新工科理念下的计算机网络教学
  6. (11) 修改ueditor 插入代码时的样式
  7. php 代码从夫,PHP FPM源代码反刍品味之四:事件处理
  8. 微信支付——jspi支付
  9. C语言数组内存大小判断
  10. 利用深度学习进行生存分析——DeepSuv模型小结