Поскольку я изучал 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 , выход должен быть ложным. Может ли кто-нибудь помочь? Спасибо огромное!
не должен быть вашей 'if matrix [i] [j] == matrix [i] [i]:' be 'if i == j:'? и 'для i в диапазоне (n):' более pythonic, чем вариант 'while' ... –
получил его. Это освещает. Спасибо! – zero