2016-09-28 92 views
0

我正在編寫一個程序,該程序允許用戶打開文件並解析垃圾郵件信心的文本。我已經能夠創建這個循環,但我現在需要創建所有這些數字的總和,以便我可以找到平均值。由於數字不是整數,所以我遇到了使用其他解決方案的麻煩。浮點數的一些例子是:垃圾郵件:0.7605,0.6932,0.7558,0.6526。該程序需要能夠讀取兩個不同的文件,所以我不能創建一個列表。從文件中查找浮點數的總和和平均值(python 3.5)

這是我現在所擁有的:

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) 

它是在 總和(浮點(項目)在垃圾項)

回答

0

那斷裂了,因爲你像一個列表處理spam求和函數。

您可以附加到垃圾郵件列表,像這樣:

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) 
+0

太謝謝你了!得到它的工作。 – jaywah