获取一个数字列表并返回平均值

时间:2013-04-27 22:41:47

标签: python list function average

进行GCSE计算,作为家庭作业,我需要做以下工作。我只是开始编程,我一直在试图弄清楚如何做但无济于事。我相信我需要使用function,但搜索“python函数列表”等在我尝试时没有给我任何帮助。

你能告诉我如何:

要求用户输入“数字列表”
打印这些数字以便确认 将它们转换为变量?
将它们加在一起
用输入的数字除以总和 - 关于如何做到这一点甚至没有丝毫的线索! 最后,打印Average is和结果。

目前我得到的是什么:

print("Welcome, this program will find the average of a list of numbers you enter.")

numbers = input("Enter your numbers, seperated by spaces.")

print("You have entered")

print(numbers)

print(numbers[0])
print(numbers[1])
print(numbers[2])
print(numbers[3])
print(numbers[4])
print(numbers[5])
print(numbers[6])

print(len(numbers))

print("The average of the above numbers is: ") #FURTHEST I'VE GOT

6 个答案:

答案 0 :(得分:15)

您可以使用python的内置函数sum

  • sum将返回所有值的总和
  • len获取列表的长度

代码:

>>> list = [1,2,3,4]
>>> sum(list)
>>> 10
>>> len(list)
>>> 4
>>> avg = float(sum(list))/len(list)
>>> 2.5
>>>"""In pyton3 don't want to specify float"""
>>> 10 / 4
>>> 2.5 

使用float因为使用python 2.x时,因为:

  • int/int返回int值(即2)
  • float/int返回浮点值(即2.5)

在Python 3.x中:

  • int/int return float
  • int//int return int

答案 1 :(得分:4)

您希望遍历列表,对所有数字求和,然后将总和除以列表中的元素数。您可以使用for循环来完成此任务。

average = 0
sum = 0    
for n in numbers:
    sum = sum + n
average = sum / len(numbers)

for循环查看列表中的每个元素,然后将其添加到当前总和。然后除以列表的长度(或列表中的元素数)来查找平均值。

我建议使用google搜索python参考,以了解如何使用常见的编程概念,如循环和条件,以便您在开始时感觉舒适。你可以在网上找到很多很棒的资源。

祝你好运!

答案 2 :(得分:0)

input()函数返回一个字符串,该字符串可能包含"数字列表"。您应该已经理解 numbers [2] 操作返回 iterable 的第三个元素。一个字符串 是一个可迭代的,但是一个可迭代的字符,这不是你想要的 - 你想在输入字符串中平均数字

因此,在你进入garyprice所显示的平均值之前,你必须做两件事:

  1. 将输入字符串转换为仅包含数字字符串的内容(您不希望数字之间的空格)
  2. 将每个数字字符串转换为整数
  3. 第1步的提示:您必须将输入字符串拆分为非空格子字符串。

    使用google很容易找到第2步(将字符串转换为整数)。

    HTH

答案 3 :(得分:0)

如果您拥有numpy软件包:

In [16]: x = [1,2,3,4]    
    ...: import numpy
    ...: numpy.average(x)

Out[16]: 2.5

答案 4 :(得分:0)

简单的数学..

def average(n):
    result = 0
    for i in n:
      result += i
      ave_num = result / len(n)
    return ave_num

input -> [1,2,3,4,5]
output -> 3.0

答案 5 :(得分:0)

<块引用>

考虑一个数字列表。编写一个 Python 程序来执行以下操作:

  1. 计算列表中数字的总数
  2. 列表中所有数字的总和和平均值
  3. 对列表中所有奇数进行计数和求和
  4. 对列表中所有偶数进行计数和求和
  5. 找出列表中最大的数字
  6. 找出列表中最小的数字

以适当的标题显示所有值。

listNo = [6,8,10,44,33,21,7,1,0,2]
c = 0
s = 0
avg = 0
sOdd = 0
sEven = 0
cOdd = 0
cEven = 0
for i in listNo :
    c += 1
    s = s+i
    avg = s/c
    if i % 2 == 0 :
        sEven = sEven + i
        cEven = cEven + 1
    else :
        sOdd = sOdd + i
        cOdd = cOdd + 1
print ("total number of numbers in the list  : ", c)
print("sum of all numbers : ",s)
print("average of all numbers : ",avg)
print("count odd numbers : ",cOdd)
print("sum of odd numbers : ",sOdd)
print("count even numbers : ",cEven)
print("sum of odd numbers : ",sEven)
print("largest number in the list : " ,max(listNo))
print("smallest number in the list  : ",min(listNo))