使用for循环计算平均值

时间:2018-12-03 20:33:48

标签: python

您好,我是编程的新手,对于此问题,我将不胜感激。

我有一个分数列表,我想创建一个函数,用每个分数除以整个列表的计算平均值。该函数应接受分数列表作为参数,并返回带有修改分数的列表。 另外,它应该使用for循环和return语句。 这是我得分列表的简短示例: 13 22 33 42 25 (分数超过500)

3 个答案:

答案 0 :(得分:1)

Absolute Madlad在9000教程网站出现之前就开始堆栈溢出。

以下是您可以使用的大量资源:

Lists-在这里您可以看到如何创建和操作列表。您还将看到如何遍历列表并打印其值。

Functions-这是有关函数的教程。有一个示例可供您遵循,甚至可以操作以了解更多信息。这将帮助您将参数传递给函数。当函数返回值时,请将函数视为变量本身。它保存函数结果的值。

For Loops-您肯定需要某种循环。 For循环几乎总是与列表结合使用。

您可能最终会从您的主体中获取一个列表,并为您的函数创建一个新列表,遍历第一个列表,并将平均值添加到for循环内的新列表中(循环传入的列表)。由于您要返回一个列表,因此您的主体将不得不遍历该列表以打印其值。

尝试尽可能多地玩这个游戏,并从中学到有趣的编程知识。

答案 1 :(得分:1)

tbh,您的问题措辞有点令人困惑,但这就是您要做的事情。

def scoreAvg(scores):
  scoresSum = sum(scores) 
  scoresSum /= len(scores)
  newScores = [] 
  for i in scores:
    i /= scoresSum 
    newScores.append(i)
  return newScores

print(scoreAvg([13,22,33,42,25]))

您说您是python的新手,所以我将简要介绍一下这里发生的事情。输入的“分数”是一个包含我们的示例分数集的列表(请记住将输入括在方括号中)。我们以sum()找到该列表的总和,以len()找到长度的和。然后,我们开始一个for循环,遍历分数元素,然后将每个元素除以平均值,然后将该值附加到我们先前创建的列表中以保存新分数。现在我们要做的就是用return newScores返回该列表!

希望我能帮上忙。

答案 2 :(得分:0)

您可以尝试以下代码。

from __future__ import division #For decimal division.

''' Function (func) '''
def func(lst):
    new_list = [] #Define an empty new list.
    for i in range(len(lst)):
        new_list += [ lst[i]*len(lst) / sum(lst) ]  

    return new_list    

mylist = [13, 22, 33, 42, 25] #List you wish to enter.
mod_list = func(lst = mylist) #Modified list.

print mod_list #Prints output (mod_list).
>>>[0.48148148148148145, 0.8148148148148148, 1.2222222222222223, 1.5555555555555556, 0.9259259259259259]

在上面的代码中,new_list的每个元素都是输入列表(lst=mylist)的元素除以输入列表的平均值。可以使用以下方法获得平均值:average = sum of input list / number of elements in input list。在python中,函数len()为您提供对象的项目数(例如列表)。函数sum()为您提供对象的sum元素。

我希望这会有所帮助。如果您有任何疑问,请告诉我。 =)