为什么我一直收到这种类型错误?(python)

时间:2014-12-19 18:12:21

标签: python types

我理解这可能是基本的,但我的任务是创建两个函数来查找均值和中值,并将它们实现到一个程序中,该程序将要求输入一系列数字。我分别制作了两个函数并对它们进行了测试,两者都工作得很好我现在将它们放到同一个程序中,只是不断收到类型错误,告诉我回顾一下我的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))

非常感谢任何帮助

1 个答案:

答案 0 :(得分:1)

您不应该解压缩函数中的参数

def median_average(*args)
def mean_average(*args)

您想要处理实际的列表

def median_average(args)
def mean_average(args)

这种方式args是值列表,因此您可以在其上调用sumlen