У меня есть следующая программа, в которой есть список списка и представляет квадратный массив. Функция должна возвращать True, если список, перемещенный за параметр представляет симметричный массив и False, если она не является симметричной, если это квадратный массив. Проблема моего кода состоит в том, что оно функционирует для неких случаев и для других не и не как enmender моя ошибка
import funcion
lista_lista = [
[ 4, 54, 4, 2],
[ 7, 0, 25, 8],
[ 4, 10, 7, 0],
[ 8, 82, 9, 9]
]
muestra = funcion.estudio_matriz(lista_lista)
print(muestra)
def estudio_matriz(lista_lista):
a = 0
b = 0
for elemento in numbers:
if elemento[a] * elemento[b] == elemento[b] * elemento[a]:
a += 1
b += 1
return Verdadero
else:
return Falso
Ты можешь упрощать то, что снопы используя numpy
, как симметричный массив - массив, который как и Ваш transpuesta ты можешь использовать метод transpose
из numpy
import numpy as np
lista_lista = [
[ 4, 54, 4, 2],
[ 7, 0, 25, 8],
[ 4, 10, 7, 0],
[ 8, 82, 9, 9]
]
matriz = np.array(lista_lista)
print(np.array_equal(matriz, matriz.T))
, Вышедшие
False
matriz.T
, возвращает тебе transpuesta array numpy и np.array.equal
сравнивает два arrays, возвращая True
или False
, я думаю, что серьезный способ больше простая, его делает это
Проблемы в тебе cГіdigo
Есть несколько вещей в тебе cГіdigo, что не выходят хорошо (Какие-то уже он прокомментировал их @abulafia), asГ - что irГ© шаг за шагом diciГ©ndote то, что он делает для того, чтобы ты это понял.
Во-первых ты делаешь цикл for elemento in numbers
, не объявив numbers
раньше раньше, из-за которого devolverГЎ ошибка, asГ - что deberГ-схвати менять это на for elemento in lista_lista
или менять ее funciГіn в def estudio_matriz(numbers)
.
, Когда ты делаешь if elemento[a] * elemento[b] == elemento[b] * elemento[a]
(раньше ты дал стоимость 0 a
и b
), что estГЎs оценивая является elemento[0] * elemento[0] == elemento[0] * elemento[0]
, которые, как это очевидно, всегда будут являться верными, а следовательно он всегда будет продолжать читать то, что есть внутри if
.
Внутри if
ты помещаешь один return Verdadero
а следовательно как только была прочитана ea lГ-nea она funciГіn terminarГЎ возвращая Verdadero
и не volverГЎ есть делать другое возвращение цикла (в действительности devolverГЎ неудача, которую я объясняю в следующем pГЎrrafo, но однажды решено это, это - то, что ocurrirГЎ).
, поместив return Verdadero
devolverГЎ ошибку, так как не определилась раньше переменная Verdadero
. Для того, чтобы не случилось habrГЎ, что помещать return 'Verdadero'
и нас devolverГЎ эта цепь текста, хотя это не обычное, нормальное значит помещать return True
или return False
, и что он возвратил нам один Booleano
.