У меня есть текстовый файл, содержащие номера, как это:Расчет средних чисел в файле .txt с помощью Python
a: 0.8475
b: 0.6178
c: 0.6961
d: 0.7565
e: 0.7626
f: 0.7556
g: 0.7605
h: 0.6932
i: 0.7558
j: 0.6526
Я хочу, чтобы извлечь только число с плавающей запятой из этого файла и вычислить среднее , Вот моя программа до сих пор,
fh = file.open('abc.txt')
for line in fh:
line_pos = line.find(':')
line = line[line_pos+1:]
line = line.rstrip()
sum = 0
average = 0
for ln in line:
sum = sum + ln
average = sum/len(line)
print average
Может кто-нибудь сказать мне, что не так с этим кодом. Спасибо
Обратите внимание, что обман только обрабатывает целые числа, поэтому будьте осторожны! –
[используйте 'math.fsum()', чтобы избежать потери точности] (http://stackoverflow.com/q/8599333/4279). Рассмотрим 'sum ([1e20, 1, -1e20]) == 0.0' vs. 'math.fsum ([1e20,1, -1e20]) == 1.0'. 'L = [float (line.split (':') [1]) для строки в open ('abc.txt')]; average = math.fsum (L)/len (L) ' – jfs