Откройте контекст
Выберите папку проекта и обозначьте нужные файлы или поведение.
Перемножьте прямоугольные целочисленные матрицы размером до 64 строк и столбцов каждая. Проверьте пустой ввод и одну ячейку, отклоняя рваные строки, несовместимые размеры и логические ячейки без изменения матриц.
Выберите папку проекта и обозначьте нужные файлы или поведение.
Укажите входные данные, ожидаемый результат и границы, которые нужно сохранить.
Проверьте предлагаемые изменения и команды, прежде чем полагаться на результат.
Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.
def matrix_product(left, right):
left, right = [tuple(r) for r in left], [tuple(r) for r in right]
widths = []
for matrix in (left, right):
width = len(matrix[0]) if matrix else 0
if len(matrix) > 64 or width > 64 or any(len(r) != width for r in matrix):
raise ValueError("matrix.shape")
if any(type(v) is not int for r in matrix for v in r):
raise ValueError("cell.integer")
widths.append(width)
if widths[0] != len(right):
raise ValueError("matrix.incompatible")
return [[sum(row[k] * right[k][j] for k in range(widths[0]))
for j in range(widths[1])] for row in left]Пример — отправная точка для реального проекта, а не утверждение, что сгенерированный код уже протестирован. Адаптируйте пути, зависимости и ожидаемое поведение к своему приложению.