Существует ли функция Py для суммы чистых элементов на главной диагонали квадратной матрицы - PullRequest
0 голосов
/ 27 октября 2019

Я выполняю задачу: напишите функцию, которая находит сумму четных элементов на главной диагонали квадратной матрицы (а именно четных элементов, а не элементов в четных позициях!). Если четных элементов нет, выведите 0. Используйте библиотеку numpy.

Я не знаю, что происходит! Можете ли вы помочь мне заставить мой код работать? Нет сообщений об ошибках только одна ошибка!

import numpy as np
def diag_2k(a):
    l = len(a[0])
    for i in range(l):
        if a[i][i]%2 == 0:
            diag_2k = sum([a[i][i]])
        elif a[i][i]%2 == 0 or a[i][i]%2 != 0:
            diag_2k = sum([a[i][i]%2 == 0])
        else:
            diag_2k = 0
    return diag_2k      

тесты экзаменаторы сообщают мне:

Failed. Wrong answer

1 Ответ

0 голосов
/ 27 октября 2019

Однострочное решение:

sum = sum([i for i in np.diag(matrix) if i % 2 == 0])

В качестве альтернативы вы можете циклически перебирать диагональные элементы, проверять их четность и суммировать их:

def diag_2k(matrix):
    sum = 0
    for i in range(matrix.shape[0]):
        if matrix[i,i] % 2 == 0:
            sum += matrix[i,i]
    return sum
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...