用Python计算两个矩阵的乘积

编写计算两个矩阵的乘积的函数,并测试。
题目中所给代码如下

'''
编写函数,计算两个矩阵的乘积。
'''
# 该函数用于把一维列表转换为二维列表
def strToMatrxi(ju):
    ############beigin###################################
    
    ############end###################################

# 定义矩阵相乘函数
def matrixMultiply(matrix1):
    ############beigin###################################
    
    ############end###################################

def main():
    '''
    矩阵的输入格式为行之间用分号分隔,列之间用逗号分隔
    三行三列矩阵输入格式为:1,2,3;3,4,5;5,6,7
    '''
    str1 =input("")
    str2 =input("")#现在这两个是字符串型
    matrix1 =strToMatrxi(str1)
    matrix2 =strToMatrxi(str2)
    print(matrix1)
    print(matrix2)
    print("矩阵相乘后的运算结果为:")
    matrix3 =list(matrixMultiply(matrix1)(matrix2))
    print(matrix3)

main()

题目要求如下:
根据提示,在右侧编辑器补充代码,计算并输出两个矩阵的乘积。
假定输入的矩阵满足如下条件:第一个矩阵的行数等于第二个矩阵的列数。
输入和输出格式参见测试说明。

测试输入如下:
1,2,3;3,4,5;5,6,7
2,5,8;2,6,7;3,3,4

预期输出为:
[[1, 2, 3], [3, 4, 5], [5, 6, 7]] [[2, 5, 8], [2, 6, 7], [3, 3, 4]]

矩阵相乘后的运算结果为:
[[15, 26, 34], [29, 54, 72], [43, 82, 110]]

'''
编写函数,计算两个矩阵的乘积。
'''
# 该函数用于把一维列表转换为二维列表
def strToMatrxi(ju):
    return list(map(lambda x: list(map(int, x.split(","))), ju.split(";")))

# 定义矩阵相乘函数
def matrixMultiply(matrix1, matrix2):
    m, n = len(matrix1), len(matrix1[0])
    p, q = len(matrix2), len(matrix2[0])
    if n != p: return None
    matrix3 = [[0] * q for _ in range(m)]
    for i in range(m):
        for j in range(q):
            for k in range(n):
                matrix3[i][j] += matrix1[i][k] * matrix2[k][j]
    return matrix3

def main():
    '''
    矩阵的输入格式为行之间用分号分隔,列之间用逗号分隔
    三行三列矩阵输入格式为:1,2,3;3,4,5;5,6,7
    '''
    str1 =input("")
    str2 =input("")#现在这两个是字符串型
    matrix1 =strToMatrxi(str1)
    matrix2 =strToMatrxi(str2)
    print(matrix1)
    print(matrix2)
    print("矩阵相乘后的运算结果为:")
    matrix3 =list(matrixMultiply(matrix1, matrix2))
    print(matrix3)

main()
def strToMatrix(ju):
    matrix = [[int(num) for num in row.split(',')] for row in ju.split(';')]
    return matrix

def matrixMultiply(matrix1):这个只有一个参数?怎么乘
根据你的调用,你想返回一个函数,再传入另一个参数?好奇怪的写法

def matrixMultiply(matrix1):
    def multiply(matrix2):
        matrix3 = [[0]*len(matrix2[0]) for i in range(len(matrix1))]
        for i in range(len(matrix1)):
            for j in range(len(matrix2[0])):
                for k in range(len(matrix2)):
                    matrix3[i][j] += matrix1[i][k] * matrix2[k][j]
        return matrix3
    return multiply