从文件中查找浮点数的和和平均值(python 3.5)

时间:2016-09-28 13:17:16

标签: floating-point sum average python-3.5

我正在编写一个程序,允许用户打开文件并解析文本以确保垃圾邮件的可靠性。我已经能够创建这个循环但我现在需要创建所有这些数字的总和,以便我可以找到平均值。我使用其他解决方案时遇到问题,因为数字不是整数。浮点数的一些示例是:垃圾邮件:0.7605,0.6932,0.7558,0.6526。该程序需要能够读取两个不同的文件,因此我无法创建列表。

这就是我现在所拥有的:

sum = 0
average=0
total=0

fname = input('Enter the file name: ')
fhand = open(fname)
count=0
for line in fhand:
    if line.startswith("X-DSPAM-Confidence: ") :
        spam = line[19:].strip()
        spam = float (spam)
        print('Spam:', spam)
        count = count + 1

sum(float(item) for item in spam)

average= total/ count
print('Average: ', average)

它正在突破     sum(垃圾邮件中的项目的浮动(项目))

1 个答案:

答案 0 :(得分:0)

这是因为您正在将spam视为sum函数中的列表。

您可以像这样附加到垃圾邮件列表:

for line in fhand:
    if line.startswith("X-DSPAM-Confidence: ") :
        temp = line[19:].strip()
        spam.append(float (temp))
        print('Spam:', spam)
        # count is not needed if spam is a list count = len(spam)
        count = count + 1

sum(float(item) for item in spam)

或者更好但是在第一次迭代时总结一下:

for line in fhand:
    if line.startswith("X-DSPAM-Confidence: ") :
        spam = line[19:].strip()
        sum += float (spam)