#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