需要帮助计算python中一组数字的平均值吗

2024-10-01 13:41:50 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的数据文件中

60,66,88,90,44,90,80,77

所有的数字都在一行

这是我的代码,它没有给出我的平均数

    inFile3 = open("data2.txt","r") 
    global gradeVar 
    gradeVar = len(gradeArray) 
    global Total 
    Total = 0 
    for Numbers in inFile3: 
            Total = Total + int(Numbers) 
    inFile3.close() 
    global averageVar 
    averageVar = Total/gradeVar 
    return averageVar 

这就是错误

^{pr2}$

Tags: 代码txtlen数据文件数字openglobaltotal
3条回答

虽然其他人已经指出了你所做的事情所涉及的一些问题,但没有人指出平均数不仅需要所有部分的总和,而且还需要所有元素的数量。因此

def parseNumberFile(file_name):
    for numbers in open(file_name, "r"):
        items = numbers.split(',')
        yield (len(items), sum(map(int,items)))

将其转换为发电机,可以用作:

^{pr2}$

你的问题是:

for Numbers in inFile3: 
        Total = Total + int(Numbers)

上面代码中的Numbers是一个行列表,而不是一个数字列表。在

^{pr2}$

应该有帮助。在

您也不需要像在Python中那样预先声明变量。事实上,如果你不知道自己在做什么和为什么,那么与global合作是非常危险的。在

编辑: 如果在一行末尾有逗号,则可以将最后一行更改为:

        if number.strip():
            Total = Total + int(number)

这将忽略任何“空”数字字符串,否则将引发错误。在

这条线:

for Numbers in inFile3:

实际上是迭代文件的行,而不是每行中的数字。您需要迭代行,然后将每行拆分为数字,如下所示:

^{pr2}$

相关问题 更多 >