我正在编写一个程序,允许用户打开文件并解析文本以确保垃圾邮件的可靠性。我已经能够创建这个循环但我现在需要创建所有这些数字的总和,以便我可以找到平均值。我使用其他解决方案时遇到问题,因为数字不是整数。浮点数的一些示例是:垃圾邮件: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(垃圾邮件中的项目的浮动(项目))
答案 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)