Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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_Python 3.x_If Statement_For Loop_Accumulator - Fatal编程技术网

Python 计算文本文件中非负数的平均值

Python 计算文本文件中非负数的平均值,python,python-3.x,if-statement,for-loop,accumulator,Python,Python 3.x,If Statement,For Loop,Accumulator,我试图读入一个整数的文本文件,将其列为一个列表,计算所有整数的平均值,计算所有非负整数的平均值,打印max和min。我能够计算所有整数的平均值,但很难获得所有非负整数的平均值以及max和min 以下是我到目前为止的情况: file = open("numberlist.txt", "r") sum = 0 list = [] for num in file: list.append(num) poslist = [] for number in file: x = int(

我试图读入一个整数的文本文件,将其列为一个列表,计算所有整数的平均值,计算所有非负整数的平均值,打印max和min。我能够计算所有整数的平均值,但很难获得所有非负整数的平均值以及max和min

以下是我到目前为止的情况:

file = open("numberlist.txt", "r")

sum = 0

list = []
for num in file:
    list.append(num)

poslist = []
for number in file:
    x = int(number)
    if x > 0:
        poslist.append(x)
        sum += number
posavg = sum / len(poslist)
print("The number of non-negative integers is ", len(poslist))
print("The average of the non-negtive integers is ", posavg)

如果数字之间用空格分隔
(或者,正如我从您的代码中理解的,通过新行)
这是一个非常短的“Pythonic”任务

首先,让我们将整个文件读入数字
并自动关闭文件:

with open('numberlist.txt') as f:
    nums = [int(x) for x in f.read().split() if int(x) >= 0]
在前两行之后,您将获得所有非负数
名为
nums
的列表中的数字

现在,平均值是:

avg = sum(nums) / len(nums)
minNum, maxNum = min(nums), max(nums)
最小/最大值为:

avg = sum(nums) / len(nums)
minNum, maxNum = min(nums), max(nums)
就这些

现在,我尽可能多地使用Python
因此,通过理解此代码,您可以创建

巨蟒的飞跃

如果数字之间用空格分隔
(或者,正如我从您的代码中理解的,通过新行)
这是一个非常短的“Pythonic”任务

首先,让我们将整个文件读入数字
并自动关闭文件:

with open('numberlist.txt') as f:
    nums = [int(x) for x in f.read().split() if int(x) >= 0]
在前两行之后,您将获得所有非负数
名为
nums
的列表中的数字

现在,平均值是:

avg = sum(nums) / len(nums)
minNum, maxNum = min(nums), max(nums)
最小/最大值为:

avg = sum(nums) / len(nums)
minNum, maxNum = min(nums), max(nums)
就这些

现在,我尽可能多地使用Python
因此,通过理解此代码,您可以创建

巨蟒的飞跃

这将保留大部分代码,并将非负部分添加到代码中(或许应该称为正?:)

对于最小值和最大值,您可以执行以下操作:

minNum, maxNum = min(list), max(list)

这保留了大部分代码,并向其中添加了非负部分(也许应该改为正数?:)

对于最小值和最大值,您可以执行以下操作:

minNum, maxNum = min(list), max(list)