Python#454
函数main()接收2个表示矩阵的嵌套列表matrix1和matrix2 (同一个列表中的所有子列表长度一样)作为参数,要求计算矩阵乘法matrix1艾特matrix2的结果并以嵌套列表的形式返回,
如果两个参数列表不符合矩阵相乘的规则就返回字符串 'error' 。
例如,main([ 方括号1,2,3],[4,5,6] ],[ [1,41 [2,5] [3,6方括号])返回[[14, 32], [32 77] ]。
完成要求的功能。不能导入任何模块,不能使用运算符艾特。
啥βChatGPT就别问了,题目都审不清楚。
考点:选择结构与循环结构?矩阵嵌套列表
def main(matrix1, matrix2):
return matrix1,matrix2
'''
答题错误!您的代码执行结果为:
([[1, 2, 3], [4, 5, 6]], [[1, 4], [2, 5], [3, 6]])
([[1, 2], [4, 5]], [[1, 4], [3, 6]])
([[1, 2], [4, 5]], [[1, 4]])
'''
def main(matrix1, matrix2):
# 判断两个矩阵是否符合相乘的规则
if len(matrix1[0]) != len(matrix2):
return 'error'
# 初始化结果矩阵
result = []
for i in range(len(matrix1)):
row = []
for j in range(len(matrix2[0])):
row.append(0)
result.append(row)
# 计算矩阵乘积
for i in range(len(matrix1)):
for j in range(len(matrix2[0])):
for k in range(len(matrix2)):
result[i][j] += matrix1[i][k] * matrix2[k][j]
return result
您可以将示例输入([[1, 2, 3], [4, 5, 6]],[[1, 4], [2, 5], [3, 6]])传递给函数,函数将返回[[14, 32], [32, 77]]。如果传递的两个矩阵不符合相乘的规则,函数将返回字符串'error'。
正确答案: def main(matrix1, matrix2): if len(matrix1[0]) != len(matrix2): # 判断维度是否一致 return 'error' res = [] for i in range(len(matrix1)): # 外层循环控制行数 temp = [] for j in range(len(matrix2[0])): # 内层循环控制列数 s = 0 for k in range(len(matrix2)): # 乘积运算 s += matrix1[i][k] * matrix2[k][j] temp.append(s) res.append(temp) return res '''
“方括号”是“[”或者“]”。