Как найти сумму положительных элементов массива python

i need to write a function that takes an array of numbers and finds the maximum sum of all the numbers. In other words, I need to find the sum of just the positive numbers. I wrote this, I’m getting “list is out of range”

thoughts?

    def maximum_sub(A):
        x = 0
        i = 0
        for i in A:
            while A[i] > 0:
            x+=A[i]
            i+=1
        return x

asked Oct 27, 2016 at 23:21

SHirsch's user avatar

3

Use super functions and list comprehension instead:

>>> a = [1, 2, 3, -4, 5, -3, 7, 8, 9, 6, 4, -7]
>>> sum(x for x in a if x > 0)
45

[x for x in a if x > 0] will create an array made of the positive values in a.

sum(...) will return the sum of the elements in that array.

answered Oct 27, 2016 at 23:24

Uriel's user avatar

UrielUriel

15.4k6 gold badges24 silver badges46 bronze badges

6

There are better approaches with sums and comprehensions, but I’ll assume you’re writing a function as an exercise in algorithms.

You don’t need the while loop. Use an if to check if it is positive, and add it to the sum. Otherwise, don’t do anything. The for loop will automatically iterate over the values for you.

def maximum_sum(A):
    x = 0
    for i in A:
        if i > 0:
            x += i
    return x

A few words of advice: name things expressively. Here’s some names I might use:

def maximum_sum(arr):
    max_sum = 0
    for num in arr:
        if num > 0:
            max_sum += num
    return max_sum

answered Oct 27, 2016 at 23:31

Jordan McQueen's user avatar

1

0 / 0 / 0

Регистрация: 19.09.2018

Сообщений: 29

1

Вычислить сумму и количество положительных элементов массива

15.10.2018, 18:54. Показов 29505. Ответов 1


Студворк — интернет-сервис помощи студентам

Вычислить сумму и количество положительных элементов массива X(n), где 1<=n<=100
Буду очень признателен



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

15.10.2018, 18:54

Ответы с готовыми решениями:

Найти сумму и количество положительных элементов массива, предшествующих первому нулевому элементу (C++ -> Python)
int A = {1,2,3,-4,0,6,7,8,9,10};
int sum = 0, count = 0;
for (int i = 0; i &lt; 10; ++i)

Найти сумму и количество положительных элементов, расположенных между минимальным и максимальным элементами массива
/*
Дан массив А(30). Найти сумму и количество положительных элементов,
расположенных между…

Определить количество отрицательных, произведение положительных и количество нулевых элементов массива
Ввести массив, состоящий из 15 элементов целого типа. Определить количество отрицательных,…

В массиве вычислить сумму четных положительных элементов
3. В массиве, содержащем положительные и отрицательные целые числа, вычислить сумму четных…

1

ProgSad

8 / 5 / 7

Регистрация: 15.02.2018

Сообщений: 36

16.10.2018, 14:34

2

Лучший ответ Сообщение было отмечено Kolyanus12 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
X = [1,32,6,-8,-6,8,9] #не полностью понял какой тебе массив нужен, так что поправишь
count = 0
Sum = 0
for i in X:
    if i > 0:
        count += 1
        Sum += i
print('Сумма: ', Sum)
print("Количество: ", count)



1



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

16.10.2018, 14:34

2

На чтение 4 мин Просмотров 4.1к. Опубликовано

Python — это язык программирования, который предоставляет нам различные встроенные функции и методы для работы со списками. Одной из таких операций является нахождение суммы чисел в списке. Это может быть полезным, когда необходимо произвести анализ числовых данных, например, при подсчете среднего значения или нахождении суммы элементов, удовлетворяющих определенным условиям. В этой статье мы рассмотрим различные методы нахождения суммы чисел в списке Python.

Содержание

  1. Методы для нахождения суммы чисел в списке
  2. Использование цикла for
  3. Использование встроенной функции sum()
  4. Использование рекурсии
  5. Обработка исключений при нахождении суммы чисел в списке

Методы для нахождения суммы чисел в списке

Использование цикла for

Цикл for является одним из наиболее простых и часто используемых способов для нахождения суммы чисел в списке. Просто пройдитесь по каждому элементу списка и добавьте его к накопленной сумме.

Вот пример кода, который демонстрирует использование цикла for для нахождения суммы чисел в списке:

numbers = [1, 2, 3, 4, 5]
total = 0

for num in numbers:
    total += num

print("Сумма чисел в списке: ", total)

В этом примере мы создали список чисел от 1 до 5 и присвоили его переменной numbers. Затем мы создали переменную total и присвоили ей начальное значение 0. Затем мы проходим по каждому элементу списка numbers и добавляем его к переменной total. Наконец, мы выводим сумму чисел на экран.

Важно отметить, что мы должны инициализировать переменную total нулевым значением перед выполнением цикла, чтобы иметь место, куда добавлять числа. Если мы попытаемся добавить число к неинициализированной переменной, возникнет ошибка.

Цикл for также может использоваться для нахождения суммы чисел в многомерном списке. В этом случае нам нужно будет использовать вложенный цикл for, чтобы перебрать каждый элемент списка.

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
total = 0

for row in matrix:
    for num in row:
        total += num

print("Сумма чисел в многомерном списке: ", total)

В этом примере мы создали многомерный список, содержащий три списка с числами. Затем мы создали переменную total и присвоили ей начальное значение 0. Затем мы используем два вложенных цикла for для перебора каждого элемента списка и добавления его к переменной total. Наконец, мы выводим сумму чисел на экран.

Использование встроенной функции sum()

Использование встроенной функции sum() для нахождения суммы чисел в списке является очень простым и эффективным способом. Функция sum() принимает один аргумент — итерируемый объект, такой как список, и возвращает сумму всех элементов в нем.

Простой пример использования функции sum() для нахождения суммы всех чисел в списке:

my_list = [1, 2, 3, 4, 5]
sum_of_list = sum(my_list)
print(sum_of_list)

Важно отметить, что функция sum() может работать только с итерируемыми объектами, элементы которых могут быть сложены. Если элементы списка не могут быть сложены, будет возбуждено исключение типа TypeError.

Использование рекурсии

Использование рекурсии — это еще один способ нахождения суммы чисел в списке Python. Рекурсия — это процесс вызова функцией самой себя. Для нахождения суммы чисел в списке при помощи рекурсии, необходимо реализовать функцию, которая будет вызывать саму себя до тех пор, пока не достигнет базового случая.

Пример реализации функции для нахождения суммы чисел в списке при помощи рекурсии:

numbers = [1, 2, 3, 4, 5]
result = recursive_sum(numbers)
print(result)

Здесь мы определяем функцию recursive_sum, которая принимает список чисел numbers. Если в списке остается только один элемент, то возвращаем его значение. В противном случае мы возвращаем сумму первого элемента списка и рекурсивного вызова функции для оставшейся части списка.

Хотя использование рекурсии для нахождения суммы чисел в списке может быть удобным и понятным, стоит иметь в виду, что это может привести к переполнению стека вызовов функций при больших списках. Поэтому, в большинстве случаев лучше использовать более эффективные методы, такие как использование встроенной функции sum() или цикла for.

Обработка исключений при нахождении суммы чисел в списке

При работе с данными, особенно с пользовательским вводом, всегда есть вероятность получения ошибочных данных. Для обработки ошибок при нахождении суммы чисел в списке можно использовать конструкцию try-except.

При использовании описанных выше методов для нахождения суммы чисел в списке возможны следующие ошибки:

  1. TypeError — возникает, если элемент списка не является числом.
  2. ValueError — возникает, если в списке есть пустые строки или нечисловые значения.

Для обработки этих ошибок можно использовать конструкцию try-except. Например, чтобы обработать ошибку TypeError, мы можем использовать следующий код:

numbers = [1, 2, 3, '4', 5]

total = 0
for num in numbers:
    try:
        total += num
    except TypeError:
        print(f"Элемент {num} не является числом")
print(f"Сумма чисел в списке: {total}")

В результате выполнения данного кода мы получим следующий вывод:

Элемент 4 не является числом
Сумма чисел в списке: 11

Обработка ошибок позволяет избежать прерывания работы программы при возникновении ошибок и предоставляет возможность корректно обработать их в процессе выполнения программы.


Предмет: Информатика,


автор: master8427

Ответы

Автор ответа: restIess





5

n = int(input(“Введите количество элементов в списке: “))

a = [float(input()) for i in range(n)]

s = 0

for i in range(n):

   if a[i] > 0:

       s += a[i]

print(a)

print(s)


master8427:
Спасибо)

Предыдущий вопрос

Следующий вопрос

Интересные вопросы

Предмет: Английский язык,
автор: pasutaekaterina0

помогите пожалуйста!​

3 года назад

Предмет: Українська мова,
автор: uvelicko226

2. Укажіть речення зі вставним словосполученням (розділові знаки пропущено). A Коротко кажучи це треба зробити сьогодні. Б У горах (ав Україні він росте переважно в нижньому гірському лісовому поясі Карпат) Ялівець почуває себе добре. В Андрій посміхнувся радісно може вперше за всі тижні окупації. гCизокрилий орле високо літаєш а чи далеко мого сина у війську вбачаєш? ​

3 года назад

Предмет: Алгебра,
автор: oleksandrmaksimenko8

3 tg( x 2 – pi 6 ) = ^ sqrt 3​​

3 года назад

Предмет: Алгебра,
автор: nanakiriya

От станции А к станции В отправился поезд. Пройдя 48 км., поезд был задержан у семафора на 15 мин. и поэтому, чтобы прийти в В по расписанию, последующий путь проходил со скоростью, в 1,2 раза большей. Зная, что расстояние АВ равно 168 км., найдите первоначальную скорость поезда

6 лет назад

Предмет: Геометрия,
автор: TieraFamily

1. Сторона треугольника равна 12см, а высота, проведенная к ней, в три раза меньше стороны. Найдите площадь треугольника.

6 лет назад

@VladHub18

Star

Embed

What would you like to do?

1. Подсчитайте число и сумму положительных, число и произведение отрицательных элементов заданного массива A(N).


This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters

Show hidden characters

from random import randint as rnd
A=[rnd(10,10) for i in range(10)]
def sum_pos(A):
k=0
summa=0
for i in range(len(A)):
if A[i]>0:
k+=1
summa+=A[i]
return k,summa
def mult_nigga(A):
n=0
multi=1
for i in range(len(A)):
if A[i]<0:
n+=1
multi*=A[i]
return n,multi
print(A)
print(sum_pos(A))
print(mult_nigga(A))

Добавить комментарий