我对编程非常陌生,我需要学习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括号中应加什么。如果有人可以正确地引导我,那将意味着很多! 谢谢!
答案 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_data
和data_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的顺序无关紧要。