用Python实现数字“绕圈圈”

效果:

数字绕圈圈效果图.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("")
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。