学习资源
- 《Python语言程序设计》——梁勇(著)
前言
之前已经对Python学习的基础语法循环部分进行了多篇练习和学习,阅读本博文的同学可以阅读之前的其他篇章,本篇章是作为进阶练习循环使用,主要围绕数字金字塔的实践进行循环的进阶练习,如果能熟练的将金字塔使用循环完成,对于循环部分的学习基本是有所得的,以后在开发中使用也会得心应手。
数字金字塔
通过编程实现用户输入任意整数,显示相应要求的数字金字塔,如下图所示:
请输入一个整数:5
数字金字塔显示如下:
1
2 1 2
3 2 1 2 3
4 3 2 1 2 3 4
5 4 3 2 1 2 3 4 5
可以熟悉使用while或者for循环进行实现这样的数字金字塔是本次实践的要求,当然还可以实现这样的三角塔:
请输入一个整数:5
正三角左显示如下:
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
下面贴出我的练习源码
#!/usr/local/bin/python
# encoding: utf-8
'''
test -- 软件流程开发学习 -- 数字金字塔
@author: Eric
@copyright: 2017 organization_name. All rights reserved.
@contact: xj_lin@protonmail.com
@warning: 需要注意每一层的长度不同
@version: v1.0
'''
#完整金字塔
def Pyramid_num():
num = eval(input("输入一个整数:"))
print("数字金字塔显示如下:")
level = 1#金字塔的高度即层数
while level <= num:
kk = 1#每一层长度计数
t = level
length = 2*t - 1
while kk <= length:
if kk == 1:
if kk == length:
print(format(t,str(2*num - 1)+"d"),"\n")
break
else:#?长度不为1的每层开头不用这样写吧,我当时的想法是每层到1前是递减的,但这里似乎也不多,后面的才需要
print(format(t,str(2*num + 1 - 2*level)+"d"),"",end="")#要形成金字塔型,13d是1的距离,15d是7的距离,然后经过测试,只要之后的距离比1的距离多2再减去2倍的层数既可以得到金字塔形状
t -= 1
else:
if kk == length:
print(t,"\n")
break
elif kk <= length/2:
print(t,"",end="")
t -= 1
else:
print(t,"",end="")
t += 1
kk += 1
level += 1
小结
代码不长,实现的功能也很简单,所以只要实地进行练习,明白了循环的使用就基本没问题,下面贴出完整源码地址。