栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

利用python的嵌套循环做出类似金子塔平面的数列。详细解题过程 自我分享。

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

利用python的嵌套循环做出类似金子塔平面的数列。详细解题过程 自我分享。

5.19 魔鬼5.19 我终于冲破你了


2021-10-19第一次接触它,碰壁了。脑袋晕菜了。重新回第一章吧。灰溜溜。
2021-11-05 单独对付它,又一次体无完肤。根本找不到解题的步骤和灵魂。强迫症的我 失败了

2021-12-12第11次来到第五章。当走到这里的时候。出现了第一次曙光 第一方案出世了
#5.19  2021-12-20 找到了解题的重大突破
#方案一
int_num = 7
date_num = int_num + 2
for i in range(1,date_num):
    for j in range(1,i):
        print(j,end = ' ')
    print()
# 现在差另一侧的阵列

第一方案解决了该题右侧阵列的问题。但是左侧却苦苦无法出现。中间看了其他教材和该书的其他章节来解答自己的一些假设问题。但对我来说也是两个月来第一次最开心的一刻。非常高兴。

第一个假设这些阵列是不是因为我对format这个命令不熟悉造成的呢。因为这个第一方案也是试验了很多次才有的结果。其中有一次是通过format这个格式化命令让我看到了希望。但是很快也破灭了。所以我想,我再重新看看之前的章节是不是自己疏忽了什么呢??

回看过去的章节,发现了这个其实是一个嵌套循环所以产生了第二方案
#方案二
# int_num = eval(input('Enter the number of lines: '))
int_num = 7
date_num = int_num + 2
for i in range(1,date_num):
    for k in range(2,i):
        print(k,end = ' ')
    for j in range(1,i):
        print(j,end = ' ')
       
    print()
其他几次的方案在下方 方案三
int_num = 7
date_num = int_num + 2
for i in range(1,date_num):
    for k in range(2,date_num - i,1): #这个是从上往下然后是从多往少排列 是第一次
        print(k,end='')
   print()
2021-12-22 尝试第N次失败 无法做到让数字在倒序显示的同时还可以从右侧开始出现第一个数字。 今天这个方案只是解决了一行的问题。
a_num = 7
b_num = a_num+2
for i in range(7, 0, -1):
    for j in range(6, 0, -1):
        print(j, end='')
    print()

int_num = 7
date_num = int_num + 2
for i in range(1, date_num):
for k in range(1, i): # 从左往右排列但是不成功
print(i- k, end=’ ’ * (i-date_num)) #该种形式可能满足第5.21题里右侧半壁的状态
print()

2021-12-24 N次
int_num = 7
date_num = int_num + 2
for i in range(1, date_num):  # 决定了阵列的列数
    for k in range(2, i):  # 决定了阵列的行数
        print(k, end=' ')   
        # print(' ' * (i), k, end=' ') #通过空格来排列数字。但是发现随着每一次循环,我们的空格也会随着循环变化
    print()
2021-12-24最大的问题是如何让我们的列能够从左往右侧进行
int_num = 7
date_num = int_num + 2
for i in range(1, date_num):  # 决定了阵列的行数
    for k in range(date_num, 2, -1):  # 决定了阵列的列数
        print(k, end=' ')
        # print(' ' * (i), k, end=' ') #通过空格来排列数字。但是发现随着每一次循环,我们的空格也会随着循环变化
    print()
2021年曙光来了 2021年底我迎来了曙光 方案四 2021-12-31 解决了12-24日的难题。现在往新的方向前进 通过CSDN里一位朋友的提示。他是用这样的方式阵列*号。但是这个也是很好的启发一下让我找到了从左边阵列的办法。
s_num = 7
s_int_num = s_num + 2

for i in range(1, s_int_num):
    for j in range(0, s_num - i):
        print(' ', end=' ')  # 看到2021-12-31csdn一位朋友的分享灵感凸显,可以用空格来弄

    for k in range(2, i):
        print(k, end=' ')

    for n in range(1, i):
        print(n, end=' ')

    print()    
突破的主要方向是发现编程输出是从上往右开始输出。而我们正常的嵌套式也只能做到这一点。但是该题是金字塔输出结果。另外就是左侧的还要是倒序的。经过1个多月的磨合,虽然头发没掉光,但是情绪已经很低落,再次感谢在论坛上看到的朋友给的提示。非常感谢。我终于又一次离目标进了一些。

方案五 最终成功了 2021-12-31
s_num = 7
s_int_num = s_num + 2

for i in range(2, s_int_num):
    for k in range(i, s_int_num):
        print(' ', end='')
    for j in range(1, i):
        print(abs(j - i), end='')
    for n in range(2, i):
        print(n, end='')
    print()

这个abs和今天的缩进也是突发奇想。其实我之前也想过用空格的方式把数字挤向右侧,但是不是很成功。
 print(' ' * (i), k, end=' ')  # 这个就是一个尝试的记录,但是没有2021-12-31日看到的那个文章的好。
最后总结一下。其实这里还有很多对for循环和嵌套循环里设置起始、终止、步幅之间练习的问题。有的脑子里有概念。有的当时分析程序的时候一闪而过。不能都一一的记录。非常感谢又是一年学习了python。今年确实比去年学的要好一些。但是年龄又大了。看来去大厂打工的梦。要变成自己创业了。但不管怎么说。2021年还是有好消息和好兆头的。 2022年我们来了,祝所有的朋友们,和同学继续的努力吧。 同时 在程序结束的输出时,编译器自带的运行确实很方便。但是还是建议在powershell或者cmd的环境下运行,这样效果更接近一些。我开始在pycharm里的运行效果就有点小瑕疵。 还有很多总结自己激动一时想不出来了。谢谢大家。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/689096.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号