行列式就是特殊的矩阵,通过Python3对其进行求解时,我们可以用Numpy库中的linalg.det()函数。 我们这里以n==3时为例。但在一般题目中,测试数据是这样输入的: 1 2 3 4 5 6 7 8 8 这里给出两种输入方法: 首先是第一种输入方法,先构造一个n*n的空矩阵 array = [[0]*n for i in range(n)] 这里我们可以把上述给出的三阶行列式看作三行字符串,对每行字符串用split()函数进行处理,存储到一个列表中,再通过pop()函数将列表中的元素从前到后依次输入矩阵的每一行中,代码如下: count=0 #代表行列式的行 while count != n: s_list = (input()).split() for i in range(n): #在count行中将当前列表中的元素依次存储进i列 array[count][i] = int(s_list.pop(0)) count += 1 其次是第二种输入方法,其中运用到了Numpy库中的reshape()方法,首先构造一个空列表 list = [] 然后将数据一次性全部输入 for i in range(n): s_list = (input()).split() for j in range(n): list.append(int(s_list.pop(0))) array = np.reshape(list, (n, n)) 需要注意的是,新构建的列表中的元素都是str型,需要通过强制转化将列表中的元素转化为int型,从而存储在之前构建的array列表中。 现在,我们已经得到了一个完整的三阶行列式,直接用linalg.det()函数对其进行求值即可。 print(np.linalg.det(array))