效果:
数字绕圈圈效果图.png
分析
如图,确定转弯线,通过判断转弯线,改变行列,从而确定数字的放置位置。
分析拐角点视图.png
实现代码如下:
size = int(input("请输入行数:"))
lst = [[0] * size]
# print(lst)
for i in range(size - 1):
lst += [[0] * size]
# 定义绕圈方向:0->向下,1->向右,2->向上,3->向左
orient = 0
row = 0
col = 0
for i in range(1, size * size + 1):
# print(row, col,i)
lst[row][col] = i
#判断拐点
if row + col == size - 1: # 左下-右上对角线
if row > col:
orient = 1
else:
orient = 3
elif row == col and row >= size / 2:# 中心点到右上角的对角线
orient = 2
elif row == col - 1 and row <= size / 2 and col <=size/2:#上半部分转着线
orient = 0
#根据拐点改变行列
if orient == 0:
row += 1
elif orient == 1:
col += 1
elif orient == 2:
row -= 1
elif orient == 3:
col -= 1
#打印存储好数据的二维列表
for i in range(size):
for j in range(size):
print('%02d' % lst[i][j], end=" ")
print("")