利用循环打印菱形数字矩阵的Python程序如下
第一图
n=4
for i in range(1,n*2):
count=0
for j in range(1,abs(n-i)+1):
print(' ',end='')
for j in range(1,2*n-2*abs(n-i)):
if j<n-abs(n-i):
print(count,end='')
count+=1
else:
print(count,end='')
count-=1
print()
源代码(注意源代码的缩进)
第二图(除了注释的语句外其它语句与第一图相同)
n=4
for i in range(1,n*2):
count=n-1 #这里与上面不同
for j in range(1,abs(n-i)+1):
print(' ',end='')
for j in range(1,2*n-2*abs(n-i)):
if j>=n-abs(n-i): #这里与上面不同
print(count,end='')
count+=1
else:
print(count, end='')
count-=1
print()
源代码(注意源代码的缩进)
首先画一个菱形,看一下规律在哪里,先看下图:
见上图菱形,定义尺寸为size=3,
定义X坐标为i:
A区域X坐标为i,Y坐标为size-i;
B区域X坐标为i,Y坐标为size+i;
C区域X坐标为i,Y坐标为i-size;
D区域X坐标为i,Y坐标为size*3-i
满足1,2,3,4的情况下就输出*,其它则输入空格,这样我们就得到一个菱形,代码如下和输出效果如下:
size = 3 # 定义菱形尺寸count = size*2+1 # 定义X,Y坐标循环范围
# i为横坐标
for i in range(count):
# j为纵坐标
for j in range(count):
# 当X,Y满足条件1和2时
if i <= size and (j == size-i or j == size+i):
print('*', end='')
# 当X,Y满足条件3和4时
elif i > size and (j == i-size or j == size*3-i):
print('*', end='')
# 其它情况输入空格
else:
print(' ', end='')
# 每打印一行就换行
print()