當我在學習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