【发布时间】:2013-11-03 15:39:53
【问题描述】:
我如何在下面使用循环来做同样的事情来使程序更高效而不是蛮力?
我正在尝试从文件中读取值,将它们转换为浮点数,取前三个数字的平均值,将平均值写入一个新文件,然后继续读取接下来的三个数字。
例子:
原始文件:
20.1
18.2
24.3
16.1
45.5
42.3
46.1
43.8
44.4
新文件:
20.87
19.53
28.63
34.63
44.63
44.07
44.77
这是我的代码:
def smooth(rawDataFilename, smoothDataFilename):
aFile = open(rawDataFilename, 'r')
newFile = open(smoothDataFilename, 'w')
num1 = float(aFile.readline())
num2 = float(aFile.readline())
num3 = float(aFile.readline())
num4 = float(aFile.readline())
smooth1 = (num1 + num2 + num3) / 3
smooth2 = (num2 + num3 + num4) / 4
newFile.write(str(format(smooth1, '.2f')))
newFile.write('/n')
newFile.write(str(format(smooth2, '.2f')))
aFile.close()
newFile.close()
【问题讨论】:
-
会发生什么,什么不会?
-
您是在寻找移动平均线,还是每组 3 个的平均值?你的问题和你的数字说明了两件事。
标签: python file for-loop file-io while-loop