Python 查找文本文件的最小值、最大值和平均值
我一直在拼命地为一个班级寻找答案,但我似乎找不到答案。我需要从从文本文件接收的给定值中找到最小值、最大值和平均值。这是我现在拥有的。甚至连指纹都没有,我也没有发现任何错误。我是根据我的教授给我们的提纲写的,但有些东西还是没有意义Python 查找文本文件的最小值、最大值和平均值,python,text,Python,Text,我一直在拼命地为一个班级寻找答案,但我似乎找不到答案。我需要从从文本文件接收的给定值中找到最小值、最大值和平均值。这是我现在拥有的。甚至连指纹都没有,我也没有发现任何错误。我是根据我的教授给我们的提纲写的,但有些东西还是没有意义 #2 inputFilename=input("Enter the filename: ") inputFile=open(inputFilename, "r") for item in inputFile: print(item.rstrip()) #3 it
#2
inputFilename=input("Enter the filename: ")
inputFile=open(inputFilename, "r")
for item in inputFile:
print(item.rstrip())
#3
item=inputFile.readline()
data=item.rstrip()
smallest, largest, sum=data, data, data
count=1
for item in inputFile:
data=int(item.rstrip())
if data<=item.strip():
largest=data
if data>=item.strip():
smallest=data
sum=
count=count+1
print("smallest: ", smallest, "largest: ",largest, "average: ")
inputFile.close()
#2
inputFilename=input(“输入文件名:”)
inputFile=open(inputFilename,“r”)
对于inputFile中的项:
打印(item.rstrip())
#3
item=inputFile.readline()
data=item.rstrip()
最小的,最大的,和=数据,数据,数据
计数=1
对于inputFile中的项:
data=int(item.rstrip())
如果数据=item.strip():
最小=数据
总数=
计数=计数+1
打印(“最小:”,最小,“最大:”,最大,“平均:”)
inputFile.close()
假设您的输入文件是由换行符分隔的整数,这里有两种方法
方法1:将所有元素读入列表,对列表进行操作
# Open file, read lines, parse each as an integer and append to vals list
vals = []
with open('input.txt') as f:
for line in f:
vals.append(int(line.strip()))
print(vals) # Just to ensure it worked
# Create an average function (much more verbose than necessary)
def avg(lst):
n = sum(lst)
d = len(lst)
return float(n)/d
# Print output
print("Min: %s" % min(vals)) # Min: 1
print("Max: %s" % max(vals)) # Max: 10
print("Avg: %s" % avg(vals)) # Avg: 5.5
方法2:一次读取一个元素,保持每个元素的最小/最大/总和/计数:
_min = None
_max = None
_sum = 0
_len = 0
with open('input.txt') as f:
for line in f:
val = int(line.strip())
if _min is None or val < _min:
_min = val
if _max is None or val > _max:
_max = val
_sum += val
_len += 1
_avg = float(_sum) / _len
# Print output
print("Min: %s" % _min) # Min: 1
print("Max: %s" % _max) # Max: 10
print("Avg: %s" % _avg) # Avg: 5.5
\u min=None
_最大值=无
_总和=0
_len=0
将open('input.txt')作为f:
对于f中的行:
val=int(line.strip())
如果_min为无或val<_min:
_最小值=val
如果_max为None或val>_max:
_max=val
_总和+=val
_len+=1
_平均值=浮动(_sum)/_len
#打印输出
打印(“最小值:%s”%#最小值)#最小值:1
打印(“最大值:%s”%#最大值)#最大值:10
打印(“平均值:%s”%#平均值)#平均值:5.5
(输入文件只是整数1-10,用换行符分隔)输入文件的格式是什么?用换行符分隔的整数?在这两个比较中有一个简单的错误:检查你比较的内容和你比较的内容。当这个问题解决后,重新思考为什么要在比较中包含“=”:这有必要吗?在您发布的代码中有一个
SyntaxError
:sum=
。