Я работаю над назначением Python, и я полностью застрял. Будем очень благодарны любой помощи. Я знаю, что это, вероятно, не так сложно, как кажется в моей голове ... Подробности ниже. Огромное спасибо.Средние числа в Python с использованием списков и ключей
Реализовать следующие три функции (вы должны использовать подходящий для создания циклов для вычисления средних значений):
allNumAvg (numList) принимает список чисел и возвращает среднее арифметическое всех чисел в списке.
posNumAvg (numList): принимает список чисел и возвращает среднее из всех номеров в списке, которые больше нуля.
nonPosAvg (numList): принимает список чисел и возвращает среднее из всех номеров в списке, которые меньше или равны нулю.
Напишите программу, которая просит пользователя ввести некоторые цифры (положительные, отрицательные и нулевые значения). Ваша программа не должна запрашивать у пользователя фиксированное количество номеров. Также он не должен запрашивать количество номеров, которые пользователь хочет ввести. Но, скорее, он должен попросить пользователя ввести несколько цифр и закончиться с -9999 (контрольное значение). Пользователь может вводить цифры в любом порядке. Ваша программа НЕ должна запрашивать у пользователя ввод положительных и отрицательных чисел отдельно.
Затем ваша программа должна создать список с введенными числами (убедитесь, что в этот список не включено значение контрольной суммы (-9999)), и выведите список и словарь со следующими парами Key-Value (с использованием ввода перечень и вышеуказанные функции):
Key = 'AvgPositive': Value = среднее значение всех положительных чисел 'AvgNonPos'
Key =: Value = среднее значение всех не-положительных чисел
Ключ = 'AvgAllNum': Значение = среднее значение для всех чисел
Пример запуска:
Введите номер (от -9999 до конца): 4
Введите номер (от -9999 до конца): -3
Введите номер (от -9999 до конца) : -15
Введите номер (-9999 до конца): 0
Введите номер (-9999 до конца): 10
Введите число (от -9999 до конец): 22
Введите номер (от -9999 до конца): -9999
Список всех чисел, введенных в:
[4, -3, -15, 0, 10, 22 ]
словарь со средними является:
{ 'AvgPositive': 12,0, '' AvgNonPos: -6.0, 'AvgAllNum': 3.0}
EDIT: Это то, что я до сих пор делал довольно быстро, чтобы иметь что-то, с чем можно работать, но я не могу понять, как реализовать ключи/словарь, как задание. Еще раз спасибо за любую помощь.
print("This program takes user-given numbers and calculates the average")
counter = 0
sum_of_numbers = 0
first_question = int(input('Please enter a number. (Enter -9999 to end):'))
while first_question != -9999 :
ent_num = int(input('Please enter a number. (Enter -9999 to end):'))
sum_of_numbers = sum_of_numbers + ent_num
counter = counter + 1
first_question = int(input('Please enter a number (Enter -9999 to end):'))
print("Your average is " + str(sum_of_numbers/counter))
Вопрос, похоже, очень сильно намекает на то, что вы должны поместить эти числа в список и послепровести список, а не выполнять вычисления в своем входном цикле. Это и быстрый взгляд на функции, доступные для работы с списками (например, 'sum()'), должно сделать это довольно простым ... Учет списков делает его еще проще ... – twalberg