Найти ошибку при добавлении в цикл
Помогите найти ошибку. Код без цикла прилагается, в нем нет ошибок, а при добавлении в цикл на девятой (при некоторых значениях на десятой) интерации что-то не то происходит. Сдвиги, вроде, правильно посчитаны. И как избавиться от скобочек в ответе?
import numpy as np
#n=int(input())
n=6
t,a = 0,np.arange(n*n).reshape(n,n)
for i in range(2*n-1):
if i==0:
k1,k2,k3=0,0,0
if i==1:
k1,k2=1,1
if i%2==1 and i!=0 and i!=1:
k1+=1
if i%5==0 and i!=0:
k2+=1
if i%4==0 and i!=0:
k3+=1
for j in range(len(a)-k1):
a[k3,k2+j]=1+t
t+=1
a=np.rot90(a)
print(a)
import numpy as np
#n=int(input())
n=6
a = np.arange(n*n).reshape(n,n)
n=0
#1круг
for i in range(len(a)):
a[0,i]=1+n
n+=1
a=np.rot90(a)
for i in range(len(a)-1):
a[0,1+i]=1+n
n+=1
a=np.rot90(a)
for i in range(len(a)-1):
a[0,1+i]=1+n
n+=1
a=np.rot90(a)
for i in range(len(a)-2):
a[0,1+i]=1+n
n+=1
#2круг
a=np.rot90(a)
for i in range(len(a)-2):
a[1+0,1+i]=1+n
n+=1
a=np.rot90(a)
for i in range(len(a)-3):
a[1+0,2+i]=1+n
n+=1
a=np.rot90(a)
for i in range(len(a)-3):
a[1+0,2+i]=1+n
n+=1
a=np.rot90(a)
for i in range(len(a)-4):
a[1+0,2+i]=1+n
n+=1
a=np.rot90(a)
#3круг
for i in range(len(a)-4):
a[2,2+i]=1+n
n+=1
a=np.rot90(a)
for i in range(len(a)-5):
a[2,3+i]=1+n
n+=1
a=np.rot90(a)
for i in range(len(a)-5):
a[2,3+i]=1+n
n+=1
a=np.rot90(a)
print(a)
Ответы (2 шт):
Автор решения: FotonPC
→ Ссылка
Где у тебя объявлены k1 k2 k3?
Вывести матрицу можно так:
for row in a:
for el in row:
print(el.rjust(5),end='')
print()
Автор решения: Виталий
→ Ссылка
Нашел
import numpy as np
#n=int(input())
n=6
t,a = 0,np.arange(n*n).reshape(n,n)
for i in range(2*n-1):
if i==0: k1,k2,k3=0,0,0
if i%2==1: k1+=1
if i%4==1: k2+=1
if i%4==0 and i!=0: k3+=1
for j in range(len(a)-k1):
a[k3,k2+j]=1+t
t+=1
a=np.rot90(a)
print(a)