Тема: Заповнення массиву по часовій стрілці. 3-я версія
Дуже довго сам шукав тому ось .Приймає на вхід число , на виході дає прямокутну матрицю заповнену числами від 1- до числа в квадраті.
n = int(input())
def spiral(n):
dx,dy = 1,0
x,y = 0,0
myarray = [[None]* n for j in range(n)]
for i in range(1,(n**2)+1):
myarray[x][y] = i
nx,ny = x+dx, y+dy
if 0<=nx<n and 0<=ny<n and myarray[nx][ny] == None:
x,y = nx,ny
else:
dx,dy = -dy,dx
x,y = x+dx, y+dy
return myarray
def printspiral(myarray):
n = range(len(myarray))
for y in n:
for x in n:
print ("%2i" % myarray[x][y],end=' ')
print ('\t')
printspiral(spiral(n))