使用for循环计算列表中数字的平均值
程序应丢弃最小和最大数字,并计算并显示剩余数字的平均值。到目前为止,我想我应该导入函数numpy来获得平均值,但我不知道如何将for循环放入它。使用for循环计算列表中数字的平均值
import numpy
numbers = input('Enter any list of numbers(seperated by any commas): ')
n2 = numpy.mean(numbers)
print(n2)
您错过了将输入转换为数字列表的步骤。如果您使用的是Python 2.x,那么input()就像您使用的那样会返回numpy.mean()可以处理的数字元组。如果您使用python3,则input()会返回一个字符串,该字符串必须被解析为数字。
的Python 2.x版:
import numpy
numbers = input('Enter any list of numbers(seperated by any commas): ')
n2 = numpy.mean(numbers)
print(n2)
蟒蛇3版本:
import numpy
numbers = input('Enter any list of numbers(seperated by any commas): ')
num_list = [int(x) for x in numbers.split(',')]
n2 = numpy.mean(num_list)
print(n2)
您错过了删除最小和最大的部分 –
如果数字之间用逗号分隔,则需要在转换之前拆分字符串。 – DSM
@DSM'numbers'在他的代码中被定义为在给定输入之后被设置为一个元组,没有split()。不过,我确实错过了最小/最大部分。他认为一旦他有数字合作,他可能会在那个部分刺伤他。即使如此,这段代码假定一切都是一个整数,这可能是不正确的。 –
你的问题是不是真的清楚。你想计算一个值数组的平均值,并且你有一个方法可以为你做。为什么你需要一个for
循环?
不过,您的输入是一个字符串,所以您必须在处理它之前将其转换为数组。这有点复杂,似乎超出了你的问题,所以我只假设numbers
已经是一个数字数组。
你想删除的最小和最大的价值,这是简单的做这样:
numbers.remove(max(numbers))
numbers.remove(min(numbers))
然后,只需调用mean
方法:
numpy.mean(numbers)
如果你真的想用一个for
循环,这里是计算平均值的方法(这是numpy所做的,但是以更加优化的方式):
mean = 0
for value in numbers:
mean += numbers
mean /= len(numbers)
@ cricket_007“尽管如此,你的输入是一个字符串,所以你必须在处理它之前将它转换成一个数组。这有点复杂,并且看起来超出了你的问题,所以我只假设这些数字已经是一个数组数字。“ –
对,错过了:) –
@ cricket_007没问题,其实如果我们跳过这个部分,我真的没有得到OP的问题......我认为这对使用'mean'函数有误解,或者可能是什么在处理大量数据时,它实际上可能会变得令人困惑 –
是否需要使用numpy? –
Python3已经可以使用标准库来计算平均值。 Numpy不需要 –
你使用的是python 3还是python 2? – DSM