Находясь в процессе решения одной задачки, понял, что опять не понимаю как работают локальные и глобальные переменные 
вот код:
Почему 'n' и 'М' передаются в функцию как глобальные, а 'с' надо указывать как локальную? Потому что если ее не указать, и вызвать просто quatro(), то будет ошибка...
Насчет самой задачи прошу не помогать, решаю сам)
вот код:
Код:
def quatro(c):
for i in range(n):
M[0][i]=c
c+=1
for i in range(1,n):
M[i][-1]=c
c+=1
for i in range(n-2,-1,-1):
M[-1][i]=c
c+=1
for i in range(n-2,0,-1):
M[i][0]=c
c+=1
return c
n=int(input())
c=1
M=[[0 for i in range(n)] for i in range(n)]
c=quatro(c)
for i in M:
print (*i)
Почему 'n' и 'М' передаются в функцию как глобальные, а 'с' надо указывать как локальную? Потому что если ее не указать, и вызвать просто quatro(), то будет ошибка...
Насчет самой задачи прошу не помогать, решаю сам)