Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查找文本文件的最小值、最大值和平均值_Python_Text - Fatal编程技术网

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=