目录
题目描述
依次输入矩阵A, B的维数,并输入两个矩阵的元素。打印两个矩阵相乘(即A * B)的结果。
输入描述
先输入矩阵A的维数和元素。元素位置根据维数动态生成。
Please input matrix A row number: 2
Please input matrix A column number: 3
Please input number for matrixA[0][0]: 3
Please input number for matrixA[0][1]: 5
Please input number for matrixA[0][2]: 1
Please input number for matrixA[1][0]: 7
Please input number for matrixA[1][1]: 2
Please input number for matrixA[1][2]: 6
再输入矩阵B的维数和元素。元素位置根据维数动态生成。
Please input matrix B row number: 3
Please input matrix B column number: 2
Please input number for matrixB[0][0]: 1
Please input number for matrixB[0][1]: 6
Please input number for matrixB[1][0]: 23
Please input number for matrixB[1][1]: 8
Please input number for matrixB[2][0]: 2
Please input number for matrixB[2][1]: 5
输出描述
输出矩阵A, B,并打印A * B的结果:
A:
| 3 5 1 |
| 7 2 6 |
B:
| 1 6 |
| 23 8 |
| 2 5 |
matrixA * matrixB =
C:
| 120 63 |
| 65 88 |
解决方案
1、输入矩阵A,B的维数、并动态生成矩阵中的元素的位置,提示用户输入每一个位置上对应的元素。
2、根据矩阵运算规则计算A* B,得到最终结果。
3、打印结果。
代码
class Matrix(object):
def __init__(self, row, column, name):
self.__row = row
self.__column = column
self.name = name
self.__base = [[0] * column for i in range(row)]
@property
def row(self):
return self.__row
@property
def column(self):
return self.__column
def __repr__(self):
print_message_list = [self.name + ":"]
for i in range(self.row):
line = "|\t"
for j in range(self.column):
line += str(self.__base[i][j]) + "\t"
line += "|"
print_message_list.append(line)
return "\n".join(print_message_list)
__str__ = __repr__
def set(self, row, column, value):
self.__base[row][column] = value
def get(self, row, column):
return self.__base[row][column]
def input(self):
for i in range(self.row):
for j in range(self.column):
se