編寫一個文件名提示的程序,然後打開文件,並 通過讀取該文件,尋找格式的行:計數線,浮點數在選擇線路,增加他們並計算平均
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
您要做的第一件事就是從代碼中刪除語法錯誤。在嘗試解決邏輯問題之前這樣做。在這裏問你的問題之前,你應該做到這一點:儘可能多地做到這一點。你會更好地學習這種方式。 –