我理解这可能是基本的,但我的任务是创建两个函数来查找均值和中值,并将它们实现到一个程序中,该程序将要求输入一系列数字。我分别制作了两个函数并对它们进行了测试,两者都工作得很好我现在将它们放到同一个程序中,只是不断收到类型错误,告诉我回顾一下我的mean_average()。任何人都可以告诉我我做错了什么以及如何解决它。我不明白为什么平均函数以前使用列表完美地工作但现在它说oprand类型不能用'int'和'list'。
values = []
loopy = 0
#Median
def median_average(*args):
loop = 0
num_order = sorted(args)
length = len(args)
half_length = int((length/2)-1)
half_length_1 = int((length/2))
if length % 2 == 0:
even_averagenf = (num_order[half_length]+num_order[half_length_1])/2
even_average = float(even_averagenf)
loop = 1
if length % 2 != 0:
odd_average = (num_order[int(half_length_1)])
loop = 2
if loop == 2:
return odd_average
if loop == 1:
return even_average
#Mean
def mean_average(*args):
mean = sum(args)/len(args))
return mean
while loopy < 1:
user_v = (input("Please enter your sequence of numbers, stop by typing 'end':"))
if user_v == "end":
print("The median value of your sequence is:", median_average(values))
print("The mean value of your sequence is:", mean_average(values))
loopy = 1
else:
values.append(int(user_v))
非常感谢任何帮助
答案 0 :(得分:1)
您不应该解压缩函数中的参数
def median_average(*args)
def mean_average(*args)
您想要处理实际的列表
def median_average(args)
def mean_average(args)
这种方式args
是值列表,因此您可以在其上调用sum
和len
。