我需要找到.txt文件中给出的最小值,最大值和平均值。我已经能够找到最小值和最大值,但我很难找到平均值。我没有编写任何用于确定平均值的编码,因为我不知道从哪里开始。我目前的代码是:
def summaryStats():
filename = input("Enter a file name: ")
file = open(filename)
data = file.readlines()
data = data[0:]
print("The minimum value is " + min(data))
print("The maximum value is " + max(data))
我需要能够返回这些值的平均值。截至目前,.txt文档具有以下值:
893
255
504
我很难找到这些的平均值,因为我试图找到总和的每一种方法都是0。
由于 (对不起,我只是学习使用文件)
答案 0 :(得分:4)
您应该首先将从文件中检索的数据转换为整数,因为您的数据列表包含字符串而不是数字。转换为整数后,可以很容易地找到平均值:
为什么需要转换为int?
>>> '2' > '10' #strings are compared lexicographically
True
<强>代码:强>
def summaryStats():
filename = input("Enter a file name: ")
with open(filename) as f:
data = [int(line) for line in f]
print("The minimum value is ", min(data))
print("The maximum value is ", max(data))
print("The average value is ", sum(data)/len(data))
<强>输出:强>
Enter a file name: abc1
The minimum value is 255
The maximum value is 893
The average value is 550.6666666666666
答案 1 :(得分:3)
不要重新发明轮子,使用numpy
它需要几个指令。您可以将txt文件导入numpy数组,然后使用内置函数执行所需的操作:
>>> import numpy as np
>>> data = np.loadtxt('data.txt')
>>> np.average(data)
550.666666667
>>> np.max(data)
893.0
>>> np.min(data)
255.0