当我在学习python时,我遇到了一个问题,一直无法确定哪里出了问题。请看下面的python代码。标识矩阵
def is_identity_matrix(matrix):
n = len(matrix)
if n != len(matrix[0]):
return False
i = 0
while i < n:
j = 0
while j < n:
if matrix[i][j] == matrix[i][i]:
if matrix[i][j] != 1:
return False
else:
if matrix[i][j] != 0:
return False
j+=1
i+=1
return True
matrix6 = [[1,0,0,0],
[0,1,0,1],
[0,0,1,0],
[0,0,0,1]]
print is_identity_matrix(matrix6)
此输出True
代替False
因为这个问题是要求我们检查单位矩阵只有在中间的对角线应有1,剩下的应该是0。由于matrix[1][3]
不等于1 ,输出应该是错误的。任何人都可以帮忙吗?非常感谢!
不应该你的'如果矩阵[i] [j] ==矩阵[我] [我]:'是'如果我== j:'?和'我在范围内(n):'比'while'变种更加pythonic ... –
明白了。这是照明。谢谢! – zero