尝试创建一个函数来计算python中数字的总和和平均值

时间:2018-09-28 04:55:25

标签: python python-3.x list function tuples

我对编程非常陌生,我需要学习python中的编程类。不幸的是,功能对我来说是如此薄弱。 有人可以帮我解决这个问题吗?

test_data = [10, 23.4, 45.6, 98.7, 34.3]
(data_sum, data_average) = sum_and_average(test_data)
print("The sum of the data is {:.3f} and the average is {:.3f}".format( data_sum, data_average ))

”编写一个函数,该函数接受一个浮点数列表,同时计算这些数字的总和和平均值。 该函数应命名为sum_and_average 该函数应使用元组返回总和和平均值, 总和是元组中的第一个元素,平均值是元组中的第二个元素。”

这是我到目前为止所拥有的:

def sum_and_average(data_sum,data_average):

    data_average = sum(test_data) / len(test_data)

    data_sum = (sum(test_data)

    return data_sum and data_average

我认为这是不正确的。我不太确定在def sum_and average括号中应加什么。如果有人可以正确地引导我,那将意味着很多! 谢谢!

3 个答案:

答案 0 :(得分:0)

您只想将一个参数test_data传递到函数中,然后将return格式化为(total, average)以创建tuple,请不要使用相同的命名系统在函数中作为要传递的变量

def sum_and_average(data):
    average = sum(data) / len(data)
    total = sum(data)
    return (total, average)

test_data = [10, 23.4, 45.6, 98.7, 34.3]

data_sum, data_average  = sum_and_average(test_data)
print('The sum of the data is {:.3f} and the average is {:.3f}'.format(data_sum, data_average))
The sum of the data is 212.000 and the average is 42.400

答案 1 :(得分:0)

您非常亲密。有些事情,您不希望sum_datadata_average作为输入,因为它们实际上是您的输出。将数据作为输入。我删除了一个括号以使代码运行。另外,您想返回一个元组,所以要返回(data_sum, data_average)

test_data = [10, 23.4, 45.6, 98.7, 34.3] 

def sum_and_average(data):
    data_average = sum(test_data) / len(test_data)
    data_sum = sum(test_data)
    return (data_sum, data_average)

data_sum, data_average  = sum_and_average(test_data)

输出:

(212.0, 42.4)

因此,当您调用print('The sum of the data is {:.3f} and the average is {:.3f}'.format(data_sum, data_average))时,将打印以下字符串:The sum of the data is 212.000 and the average is 42.400

答案 2 :(得分:0)

除了已经很好的答案,这是我要使用的:

def sum_and_average(test_data):
     data_average = sum(test_data) / len(test_data)
     data_sum = (sum(test_data)) 

代码中缺少括号。

     return(data_sum, data_average)

这将返回两个值-总和和平均值。如果使用“和”,它将返回总和而不是平均值。

test_data = [10, 23.4, 45.6, 98.7, 34.3]
(data_sum, data_average) = sum_and_average(test_data)
print("The sum of the data is {:.3f} and the average is {:.3f}".format( data_sum, data_average ))

您必须注意,在这种特殊情况下def和main的顺序无关紧要。