Не возвращает total в терминал, так же не работает print. В чем проблема?

arr=[]
arr=input()
def summa(arr):
    for x in arr:
        total = 0
        if x % 2 == 0:
            total += x
            print(total)
    return total

как только не пробовал. return во все части пихал, если ставлю return к функции summa, то вообще пишет, что return за пределами функции. помогите, пожалуйста


Ответы (1 шт):

Автор решения: SwaD

У вас допущен ряд ошибок в коде

Что бы функция, которая была объявлена, отработала, ее надо вызвать
Для записи элементов в список используется метод append
input() возвращает всегда строку, для преобразования значения в число, необходимо использовать функцию int()

arr=[]
# Запускаем вечный цикл
while True:
    # считываем значение и преобразуем в число
    i = int(input())
    # Если значение меньше 0 (я так захотел)
    if i < 0:
        break # Выходим из цикла
    # Если не вышли, то добавляем в цикл
    arr.append(i)
# Объявляем функцию
def summa(arr):
    for x in arr:
        total = 0
        if x % 2 == 0:
            total += x
            print('t', total)
    return total # Возврат результата работы функции
# Вызываем функцию, а результат сохраняем в переменную res
res = summa(arr)
# Печатаем результат работы функции
print('res', res)
→ Ссылка