Answer
t.me/python_tesstОтвет:
[0, -4, 1, -5, 0, -4, -2, 0, -3, 4]
[0, 1, 0, 0, 4]
Объяснение:
Ставится задача - заполнить массив случайными положительными и отрицательными целыми числами. Вывести его на экран. Удалить из массива все отрицательные элементы и снова вывести. Если очередной элемент массива отрицателен, то все элементы следующие за ним надо передвинуть на одну ячейку вперед. В результате отрицательный элемент как бы затрется, а учитываемую длину массива надо уменьшить на единицу.
Поскольку непредсказуемо могут меняться как длина массива, так и счетчик-индекс элементов, то цикл for не подходит. Когда встречается отрицательный элемент, то индекс не увеличивается, т.к. на это место записывается новый элемент, который будет проверяться в следующей итерации цикла. При этом надо уменьшить значение длины массива.
Если же элемент не отрицательный, то надо перейти к следующему элементу, т.е. увеличить индекс и при этом не уменьшать длину массива.
Код:
from random import random a = [] for i in range(10): n = int(random()*10) - 5 a.append(n) print(a) i = 0 m = 10 while i < m: if a[i] < 0: del a[i] m -= 1 else: i += 1 print(a)