не могу вывести в файл сумму элементов матрицы под самой матрицей, если добавить f.write(str(sum)) пишет <built-in function sum>

Рейтинг: -1Ответов: 1Опубликовано: 22.01.2023
def creator():
    n = int(input('Введите n ='))
    a = [[0] * n for i in range (n)]
    counter = 1
    sum = 0
    for x in range(n):
        for y in range(n):
        a[x][y] = counter
        counter += 1
        sum += a[x][y]
        print(a[x][y], end='\t')
    print()
    print(sum)
return a
with open('summa.txt', 'w')as f:
    for i in creator():
        f.write(str("\t".join(map(str, i))))
        f.write("\n")
    f. write(str(sum))
f.close()

Ответы

▲ 0Принят

нужно использовать другое имя для переменной суммы:

def creator():
    n = int(input('Введите n ='))
    a = [[0] * n for i in range (n)]
    counter = 1
    matrix_sum = 0
    for x in range(n):
        for y in range(n):
            a[x][y] = counter
            counter += 1
            matrix_sum += a[x][y]
            print(a[x][y], end='\t')
        print()
    print(matrix_sum)
    return matrix_sum

with open('summa.txt', 'w') as f:
    for i in a:
        f.write(str("\t".join(map(str, i))))
        f.write("\n")
    f.write(str(creator()))
f.close()

или даже так:

def creator():
    n = int(input('Введите n ='))
    a = [[0] * n for i in range (n)]
    counter = 1
    matrix_sum = 0
    for x in range(n):
        for y in range(n):
            a[x][y] = counter
            counter += 1
            matrix_sum += a[x][y]
            print(a[x][y], end='\t')
        print()
    print(matrix_sum)
    return a,matrix_sum

with open('summa.txt', 'w') as f:
    matrix,matrix_sum = creator()
    for i in matrix:
        f.write(str("\t".join(map(str, i))))
        f.write("\n")
    f.write(str(matrix_sum))
f.close()