def matrix(num):
# 定义num个空列表存放数据
lists = []
for lst in range(num):
lists.append([])
n = 1 # 排序从1开始
# 前半部分蛇形矩阵
for num1 in range(1, num+1):
if num1 % 2 == 0:
for s in range(num1):
lists[s].append(n)
n += 1
if num1 % 2 == 1:
for s in range(num1):
lists[num1-1-s].append(n)
n += 1
# 后半部分蛇形矩阵
m = 1
for num2 in range(num+1, (2*num)):
if num2 % 2 == 0:
num2 = 2 * num - num2
for s in range(0, num2):
lists[s+m].append(n)
n += 1
if num2 % 2 == 1:
num2 = 2 * num - num2
for s in range(num2):
lists[-1-s].append(n)
n += 1
m += 1
# 打印
for pr in lists:
for p in pr:
seat = int(num/2) + 1
print(str(p).rjust(seat), end='')
print('')
if __name__ == '__main__':
matrix(9)
运行结果:



