Попытка создать функцию, которая вычисляет сумму и средние числа в Python - PullRequest
0 голосов
/ 28 сентября 2018

Я чрезвычайно новичок в программировании, и в 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

Я не думаю, что это правильно.Я не слишком уверен, что поставить в скобках для определения суммы и среднего.Если кто-то может просто направить меня в правильном направлении, это будет означать тонну!спасибо!

Ответы [ 3 ]

0 голосов
/ 28 сентября 2018

Ты очень близко.Несколько вещей, вы не хотите 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

0 голосов
/ 28 сентября 2018

В дополнение к и без того хорошим ответам я бы использовал следующее:

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 не имеет значения в данном конкретном случае.

0 голосов
/ 28 сентября 2018

Вы хотите передать только один аргумент 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...