Вычислить сумму и число положительных элементов матрицы A[N, N]

Задание: Вычислить сумму и число положительных элементов матрицы A[N, N], находящихся над главной диагональю.

Я сделал код, правда только не совсем работает так: Вывод положительных чисел не может убрать отрицательные (т.е. например: 2 3 4 5 -1, а вывод получается: 5, хотя должно быть 4). Также правильно ли я сделал с суммой, если я сделал с рандомным значением (Выводит при вводе 2 1 2 3 4: 48, потом 52, 37 и т.д.)? Заранее благодарю.

import random
pol = 0
s=0
i=0
k=1
aar = []
N=int(input('Ввод: '))
A=[[random.randrange(10) for i in range(N)] for j in range(N)]
for row in range(N):
    for col in range(row + 1, N):
         s+=A[row][col]

for row in range(N):
    aar.append(input())
    if N > 0:
        pol += 1
print('Сумма:', s)
print('Число:', pol)

Ответы (1 шт):

Автор решения: hedgehogues

Это же можно сделать более эффективно:

import random
pol = 0
s = 0
N = int(input('Ввод: '))
A = [[random.randrange(10) for i in range(N)] for j in range(N)]
for i in range(N):
    for j in range(i+1, N):
        if A[i][j] <= 0:
           continue
        if A[i][j] > 0:
            pol += 1
            s += A[i][j]

print('Сумма:', s)
print('Число:', pol)

Или даже при генерации данных (при считывании, без хранения матрицы):

import random


pol = 0
s = 0
N = int(input('Ввод: '))
for i in range(N):
    for j in range(i+1, N):
        a_ij = random.randrange(10)
        if a_ij <= 0:
           continue
        if a_ij > 0:
            pol += 1
            s += a_ij

print('Сумма:', s)
print('Число:', pol)
→ Ссылка