Проблема с использованием функции в python

#python

#python

Вопрос:

Эй, ребята, у меня вопрос, что я являюсь списком чисел, и мне нужно использовать функции для нахождения среднего значения. Я думаю, что она у меня в значительной степени есть, но я не могу заставить ее печатать среднее значение. Не могли бы вы, пожалуйста, сказать мне, что не так.

 nums = [30,34,40,36,36,28,29,32,34,44,36,35,28,33,29,40,36,24,26,30,30,32,34,32,28,36,24,32]

def average(nums):
    return sum(nums) / len(nums)
  

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

1. Числа, которые вы используете в своем def, — это не ваш список, это переменная, которая будет представлять аргумент, который вы передаете функции.

Ответ №1:

Вы пробовали print average(nums) ? Код, который у вас пока есть, просто определяет функцию. Он ничего с ней не делает. Вы должны вызвать функцию с ее параметрами, а затем что-то сделать с ее возвращаемым значением (т. е. использовать print функцию).

Ответ №2:

В основном ваша проблема заключается в следующем: int / int = int . Вместо этого вы, вероятно, хотите один из этих:

  • int / float = float
  • float / int = float

Попробуйте это:

 nums = [30,34,40,36,36,28,29,32,34,44,36,35,28,33,
        29,40,36,24,26,30,30,32,34,32,28,36,24,32]

def average(n):
    return sum(n) / float(len(n))

print average(nums)
  

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

1. 1. С Python 2.5 или около того вы можете сделать: from __future__ import division чтобы / оператор представлял «истинное деление» в отличие от «разделения по этажам»; подробнее здесь: python.org/dev/peps/pep-0238