Использование функции / возврата

#function #return

Вопрос:

У меня была задача закодировать следующее:

Возьмите список целых чисел и верните значение этих суммированных чисел, но только если они нечетные.

Пример ввода: [1,5,3,2] Вывод: 9 Я выполнил приведенный ниже код, и он отлично сработал.


 numbers = [1,5,3,2] print(numbers) add_up_the_odds = [] for number in numbers:  if number % 2 == 1:  add_up_the_odds.append(number) print(add_up_the_odds) print(sum(add_up_the_odds))  

Затем я попытался перекодировать его, используя определение / возврат функции:


 def add_up_the_odds(numbers):  odds = []  for number in range(1,len(numbers)):  if number % 2 == 1:  odds.append(number)  return odds numbers = [1,5,3,2] print (sum(odds))  

Но я не смог заставить это работать, кто-нибудь может помочь с этим?

Комментарии:

1. Это Питон? Можете ли вы добавить языковой тег?

Ответ №1:

Примечание: Я собираюсь предположить, что Python 3.x

Похоже, вы определяете свою функцию, но никогда не вызываете ее.

Когда интерпретатор завершает просмотр определения вашей функции, функция теперь доступна для использования, но на самом деле она никогда не выполняется, пока вы ей не скажете.

Между последними двумя строками вашего кода вам нужно вызвать add_up_the_odds() в массиве чисел и присвоить результат переменной коэффициентов.

т.е. odds = add_up_the_odds(numbers)