编写一个文件名提示的程序,然后打开文件,并 通过读取该文件,寻找格式的行:计数线,浮点数在选择线路,增加他们并计算平均
X-DSPAM-Confidence: 0.8475
计数这些线和从每个 线提取浮点值并计算这些值的平均值,并产生一个输出 如下所示。请勿在解决方案中使用
sum()
函数或名为sum
的变量 。你可以当您在测试下面输入
mbox-short.txt
为文件名的 http://www.pythonlearn.com/code/mbox-short.txt
下载的样本数据。
这是我的代码,这是行不通的。如果你知道如何解决它,请解释(尽量简单):
# Use the file name mbox-short.txt as the file name
fname = raw_input("Enter file name: ")
fh = open(fname)
count = 0
total = 0
for line in fh:
if not float(line.startswith("X-DSPAM-Confidence:")) : continue
count = count + 1
float(total) = float(total) + float(line)
float(average = total/count)
print "Average spam confidence: ", average
正确答案应该是:Average spam confidence: 0.750718518519
您需要先从该行的其余部分提取浮动字符串,然后再尝试对其进行转换或对其进行算术运算。 “行”仍然包含整个行。 – mpez0
您要做的第一件事就是从代码中删除语法错误。在尝试解决逻辑问题之前这样做。在这里问你的问题之前,你应该做到这一点:尽可能多地做到这一点。你会更好地学习这种方式。 –