程序应丢弃最小和最大的数字,并计算并显示剩余数字的平均值。到目前为止,我认为我应该导入函数numpy以获得平均值,但我不知道如何将for循环放入其中。
import numpy
numbers = input('Enter any list of numbers(seperated by any commas): ')
n2 = numpy.mean(numbers)
print(n2)
答案 0 :(得分:1)
您错过了将输入转换为数字列表的步骤。如果您正在使用python 2.x,则输入()就像您正在使用它一样,将返回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)
python 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)
答案 1 :(得分:0)
你的问题不是很清楚。您想要计算值数组的平均值,并且您有一个方法可以为您完成。为什么需要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)