问题分析
本题目的是对for循环的使用,对于下面代码的方法三,是需要先自行推算,不属于编程思维。
代码实现
#读入正整数n,打印n行正金字塔,再打印n行倒金字塔
#'''
n=int(input("请输入正整数n:"))
##方法一
#'''
for i in range(1,n+1):
for j in range(n-i):
print(' ',end='')
for k in range(2*i-1):
if k<=i-1:
print(k+1,end='')
else:
print(2*i-1-k,end='')
print()
for i in range(n-1,0,-1):
print(' '*(n-i),end='')
for k in range(1,i+1):
print(k,end='')
for m in range(i-1,0,-1):
print(m,end='')
print()
#'''
##方法二
#'''
for i in range(1,n+1):
print(' '*(n-i),end='')
for j in range(1,i+1):
print(j,end='')
for k in range(i-1,0,-1):
print(k,end='')
print()
for i in range(1,n):
print(' '*i,end='')
for k in range(1,n-i+1):
print(k,end='')
for m in range(n-i-1,0,-1):
print(m,end='')
print()
#'''
##方法三
#'''
for i in range(1,n+1):
print(' '*(n-i),end='')
for m in range(1,2*i):
print(n-abs(m-n),end='')
print()
for j in range(n-1,0,-1):
print(' '*(n-j),end='')
for p in range(1,2*j):
print(n-abs(n-p),end='')
print()
#'''
运行结果如下:
版权声明:本文为weixin_44834325原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。