41

Re: Задачки

А як щодо офіційного працевлаштування з записом до трудової книжки? :)

Оскільки кожен рядок вводу відповідає рядку чисел матриці, int(input()) робити не слід (бо тоді цілий рядок розглядатиметься як одне число й лаятиметься, якщо там буде кілька чисел чи end) — треба прочитати його, розбити на окремі числа, переконвертити кожне в int. Наприклад, так:

import re

a=[]
while True:
    s=input()
    if s=='end': break
    row=[]
    for t in re.findall('-?[0-9]+', s):
        row.append(int(t))
    a.append(row)

Ну й решту коду переробити для роботи з двовимірною матрицею a[i][j]

Подякували: quez, Blast2

42

Re: Задачки

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 xrange(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],           #when test in site - here error
        print
 
printspiral(spiral(n))

Заповнення матриці по годинниковій стрілці з максимальним значенням х^2 по середині.
При першому запуску все проходить .
після редаргування під 3-й пайтон постійно помилки.