Python 计算文本文件中非负数的平均值
我试图读入一个整数的文本文件,将其列为一个列表,计算所有整数的平均值,计算所有非负整数的平均值,打印max和min。我能够计算所有整数的平均值,但很难获得所有非负整数的平均值以及max和min 以下是我到目前为止的情况: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(
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)