size=7 #创建一个size*size的二维列表 array=[[0]*size] for i in range(size-1): array+=[[0]*size] #orient 代表转圈方向 #0代表向下,1代表向右,2代表向左,3代表向上 orient=0 #i控制行索引,j控制列索引 i=j=0 #k为需要存入二维数组的数 for num in range(1,size*size+1): array[i][j]=num if i+j==size-1: #位于左下角,向右转 if i>j: orient=1 #位于右上角,向左转 else: orient=2 #位于右下角,向上转 elif j==i and j>=size/2 : orient=3 #位于左上角,向下转 elif i==j-1 and j<=size/2 : orient=0 if orient==0: i+=1 elif orient==1: j+=1 elif orient==2: j-=1 elif orient==3: i-=1 for i in range(size): for j in range(size): print("%02d"%array[i][j],end=" ") print()