【发布时间】:2020-09-15 05:23:42
【问题描述】:
我正在学习一门 EdX 课程,其中要求我:编写一个提示输入文件名的程序,然后打开该文件并通读该文件,查找以下形式的行: X-DSPAM-置信度:0.8475 计算这些行并从每行中提取浮点值并计算这些值的平均值并产生如下所示的输出。不要在解决方案中使用 sum() 函数或名为 sum 的变量。 测试时可以在http://www.py4e.com/code3/mbox-short.txt下载示例数据,下面输入mbox-short.txt作为文件名。
我不想使用 string.split(),因为课程中没有教授它。
到目前为止,我面临的问题是我不知道如何提取浮点数并求和。
fname = input("Enter file name: ")
fh = open(fname)
count = 0
val = 0
for line in fh:
if not line.startswith("X-DSPAM-Confidence:") :
continue
count = count+1
found = line.find(":")
data = float(line[found+1:])
val = val + data
avg = val/count
print("Average spam confindence", avg)
这是我一直在编写的代码,但它给了我下一个结果:
平均垃圾邮件置信度 0.036692592592592596
我应该得到:平均垃圾邮件置信度:0.750718518519 我相信这是因为浮点数的不同值没有加到总和中,如果你能帮我解决这个问题:)
【问题讨论】:
-
val = val + data的缩进错误。 How to debug small programs. 投票结束,因为打字错误 -
感谢您的解决方案。
标签: python python-3.x