Здесь вам нужен пользовательский class
, который определяет методы goto
и insert
, которые ведут себя так, как вы только что описали.Вы также можете сделать это, используя глобальные переменные и функции, но использование класса упрощает управление и делает его более переносимым.
Очень простая реализация будет следующей:
class Spreadsheet:
def __init__(self, rows, columns):
self.matrix = []
self.rows = rows
self.columns = columns
self.cur_pos = (0, 0)
for i in range(rows):
self.matrix.append([])
for j in range(columns):
self.matrix[i].append(None)
def goto(self, x, y):
if 0 <= x < self.rows and 0 <= y < self.columns:
self.cur_pos = (x, y)
else:
raise Exception('Cannot goto({},{}): matrix indexes out of range!'.format(x, y))
def insert(self, element):
self.matrix[self.cur_pos[0]][self.cur_pos[1]] = element
Вы можетезатем используйте это так:
s = Spreadsheet(5, 2)
s.goto(3, 1)
s.insert('ABC')
for line in s.matrix:
print(line)
Результат будет:
[None, None]
[None, None]
[None, None]
[None, 'ABC']
[None, None]