defrotation_matrix(n):
arr =[[Nonefor _ inrange(n)]for _ inrange(n)]
right, down, left, up = n -1, n -1,0,0
i, j =0,0# i是行,j是列
sum_ =1while sum_ <= n * n:# rightfor j inrange(left, right +1):
arr[i][j]= sum_
sum_ +=1
right -=1# downfor i inrange(up+1, down+1):
arr[i][j]= sum_
sum_ +=1
down -=1# leftfor j inrange(right, left-1,-1):
arr[i][j]= sum_
sum_ +=1
left +=1# upfor i inrange(down, up,-1):
arr[i][j]= sum_
sum_ +=1
up +=1return arr
if __name__ =='__main__':
n =int(input('input:'))
arr = rotation_matrix(n)for row inrange(n):print(arr[row])
结果
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6/Users/daidai/Desktop/刷题.py
input:5[1,2,3,4,5][16,17,18,19,6][15,24,25,20,7][14,23,22,21,8][13,12,11,10,9]
Process finished with exit code 0