В матрице заменить последний элемент каждой строки на сумму предыдущих
элементов той же строки.
**Алгоритм решения основной части задачи** (только сложение и замена):
1. Для каждой строки присвоить переменной summa значение 0, индексу элемента (i) также значение 0.
2. Пока индекс элемента не дошел до последнего элемента строки, увеличивать значение summa на значение очередного элемента строки матрицы.
3. Иначе (когда индекс элемента указывает на последний элемент строки) изменить значение последнего элемента строки на значение переменной summa.
import random n = 4 m = 6 matrix = [] for i in range(n): # формируем исходную матрицу line = [] for j in range(m): line.append(round(random.random() * 10) - 5) # от -5 до 5 matrix.append(line) for line in matrix: # вывод исходной матрицы for i in line: print('%4d' % i, end='') print() print() for line in matrix: # изменение матрицы summa = 0 i = 0 while i < m-1: summa += line[i] i += 1 else: line[m-1] = summa for line in matrix: # вывод измененной матрицы for i in line: print('%4d' % i, end='') print()Пример выполнения кода:
-5 2 1 2 -4 1 -3 5 -4 -5 2 1 -4 -1 2 2 4 4 3 -4 2 -2 -5 0 -5 2 1 2 -4 -4 -3 5 -4 -5 2 -5 -4 -1 2 2 4 3 3 -4 2 -2 -5 -6В данном случае нельзя использовать метод index() списка. Числа в строке
матрицы могут повторяться и поэтому метод вернет индекс первого элемента с
заданным в качестве аргумента значением. Поэтому вот так неправильно (только
основной алгоритм):
for line in matrix: summa = 0 for i in line: if line.index(i) != m-1: summa += i else: line[m-1] = summa