Исправить ошибку кода

AlexandrMI

Новичок
Пользователь
Авг 14, 2020
8
0
1
Необходимо найти сумму элементов списка, удовлетворяющих данному условию:
Код:
e_list =[150, 132, 110, 186, 103, 229, 179, 224, 230, 113, 224, 202]

n = 148
a = 3.67
b = 4.83
S = sum(e_list)
i= 0
for i in range(len(e_list)):
    if e_list[i] <= n:
        e_i = e_list[i]
        i += 1
        E1=sum((e_i)*a)  # Ошибка!!!
 

alext

Популярный
Пользователь
Май 10, 2020
288
66
28
Какому условию?
Какая ошибка?
 

borntohack

змееуст
Команда форума
Модератор
Апр 22, 2020
78
62
18
39
Москва, РФ
Какому условию?
Оператор sum применяется только к итерируемым величинам. У вас (e_i)*a, что пораждает float, который не итерируем, да и sum там не зачем
 

AlexandrMI

Новичок
Пользователь
Авг 14, 2020
8
0
1
Какому условию?
Какая ошибка?
В последней строке
 

borntohack

змееуст
Команда форума
Модератор
Апр 22, 2020
78
62
18
39
Москва, РФ
Про ошибку в последней строке я вам уже ответил.
Задача все еще непонятна.
 

AlexandrMI

Новичок
Пользователь
Авг 14, 2020
8
0
1
Про ошибку в последней строке я вам уже ответил.
Задача все еще непонятна.
Найти сумму значений (e_i) в диапазоне range(len(e_list))
 

alext

Популярный
Пользователь
Май 10, 2020
288
66
28
Найти сумму значений (e_i) в диапазоне range(len(e_list))
Мы не знаем, что такое "значения e_i". Только ты знаешь, что такое e_i.
Диапазон range(len(e_list)) это список вроде [0, 1, 2, 3, 4, 5, 6, ...], уверен, тебе не в нем надо сумму искать, а в списке e_list.
Найти сумму всех значений списка e_list, которые меньше n?
result = sum(x for x in e_list if x < n)
 

Форум IT Специалистов