как рассчитать среднее значение после цикла - PullRequest
0 голосов
/ 25 марта 2019

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

"Напишите программу, которая всегда просит пользователя ввести число. Когдапользователь вводит отрицательное число -1, программа должна прекратить запрашивать у пользователя ввод числа. Затем программа должна вычислить среднее число введенных чисел, исключая -1. "

Цикл while, который я могу сделать... Расчет - это то, на чем я застрял.

negative = "-1"
passable = "0"
while not passable <= negative:
  passable = input("Write a number: ")

Я просто хочу, чтобы это сработало, и, если возможно, объяснение

Ответы [ 3 ]

0 голосов
/ 25 марта 2019

Я бы инициализировал список, прежде чем запрашивать у пользователя номер, используя do-while. Затем вы добавляете каждое число в этот список, если только число == -1. Если это так, то вы суммируете каждый элемент в списке и выводите среднее значение.

Вот псевдокод, чтобы помочь:

my_list = []
do
    input_nb = input("Please enter a number: ")
    if(input_nb != -1)
        my_list.add(input_nb)

while (input_nb != -1)

average = sum(my_list) / len(my_list)

print('My average is ' + average)
0 голосов
/ 25 марта 2019

Как указано в некоторых других ответах здесь, вы должны суммировать все свои ответы и разделить их на количество введенных вами чисел.

Однако помните, что input() будетстрока.Это означает, что наш цикл while должен прерваться, когда он найдет строку '-1', и вам нужно добавить float() числа, чтобы иметь возможность сложить числа вместе.

numbers=[]

while True:
    ans=input("Number: ")
    if ans=="-1":
        break
    else:
        numbers.append(float(ans))

print(sum(numbers)/len(numbers))
0 голосов
/ 25 марта 2019

Вы присваиваете строки своим переменным, что я не считаю вашим намерением.

Это будет работать:

next_input = 0
inputs = []

while True:
    next_input = int(input('Please enter a number:'))
    if next_input == -1:
        break

    else:
        inputs.append(next_input)

return sum(inputs) / len(inputs)

Сначала необходимо создать контейнер для хранения всех введенных значений. Это inputs, list.

Далее вам нужен цикл while. Это еще один способ его структурирования: цикл, который будет выполняться бесконечно, и проверка внутри него, которая сравнивает текущий ввод с -1 и завершает цикл с break, если это так. В противном случае он добавляет этот вход к list уже введенных данных.

После выхода из цикла среднее значение вычисляется путем взятия суммы всех значений во введенных входных данных, деленной на длину содержащего их list (т.е. количество элементов в нем).

...