当我在学习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
而不是{matrix[1][3]
不等于1,因此输出应为false。有人能帮忙吗?非常感谢你!在
如果你没有学过range(),就像我现在一样, 我的解决方案是:
您应该比较}。在
i == j
,而不是{这里的版本使用}。在
for
而不是{或者甚至(使用
^{pr2}$product
中的product
),这样可以节省缩进级别,并且对我来说更易读:就像hiro主角说的,问题就在这一行:
您正在检查单元格的值是否与对角线上的值匹配,我假设您要检查是否在对角线上。在
该行应为:
^{pr2}$相关问题 更多 >
编程相关推荐