[#] Списки, кортежи
vit01(mira, 1) — All
2015-12-04 04:13:39


В общем случае алгоритм решения данной задачи можно свести к следующему:
1. Если очередной элемент меньше нуля, то увеличиваем счетчик отрицательных элементов и добавляем значение элемента к общей сумме отрицательных элементов.
2. Находим среднее арифметическое среди отрицательных элементов, разделив сумму значений элементов на количество найденных элементов.
3. Находим минимальный элемент в массиве. Определяем его индекс. Заменяем значение по найденному индексу на вычисленное выше среднее арифметическое.
Третью подзадачу (замену минимального элемента) можно решить двумя подходами:
1) написать цикл поиска минимального элемента и его индекса или 2)
воспользоваться фунциями встроенными в язык Python (по-сравнению с тем же
Pascal в Python много "дополнительных инструментов").
Функция min() возвращает минимальный элемент из переданного ей аргумента.
(Передавать можно не только список.)
Метод index() возвращает индекс переданного ему элемента в последовательности,
к которой он применяется.
    arr = []
    count = 0 # количество отрицательных элементов
    summa = 0 # сумма отрицательных элементов
    for i in range(10):
    	item = int(input(str(i) + ' item: '))
    	arr.append(item)
    	if item < 0:
    		count += 1
    		summa += item
    if count != 0:
    	mean = summa/count # среднее арифметическое
    	minimal = min(arr) # значение минимального элемента в списке-массиве
    	min_id = arr.index(minimal) # индекс минимального элемента 
    	arr[min_id] = round(mean)
    	print(mean)
    	print(arr)
Пример выполнения кода:
    0 item: 4
    1 item: 5
    2 item: 6
    3 item: 7
    4 item: 8
    5 item: 9
    6 item: -2
    7 item: -6
    8 item: -3
    9 item: 0
    -3.6666666666666665
    [4, 5, 6, 7, 8, 9, -2, -4, -3, 0]
Решение задачи в "классическом" стиле (без использования функций min() и
index() может выглядеть так:
    arr = []
    count = 0 
    summa = 0 
    min_id = 0 # индекс минимального элемента
    for i in range(10):
    	item = int(input(str(i) + ' item: '))
    	arr.append(item)
    	if item < 0:
    		count += 1
    		summa += item
    		if item < arr[min_id]:
    			min_id = i
    if count != 0:
    	mean = summa/count 
    	arr[min_id] = round(mean)
    	print(mean)
    	print(arr)