python 怎么打印数字菱形?

Python013

python 怎么打印数字菱形?,第1张

利用循环打印菱形数字矩阵的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()