как заставить al oop запомнить информацию из предыдущих итераций? - PullRequest
1 голос
/ 02 апреля 2020

Я хочу сделать al oop, где я могу ввести числа, а затем l oop даст мне среднее число введенных чисел. Но проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как заставить l oop запомнить предыдущие цифры, которые я ввел. Я хочу, чтобы l oop закончился, если я поставлю -1.

x = (input ("enter a number: "))
while x != "-1":
    y = int(input("enter another number: " ))
    total = 0 + y
    if total <= 0:
        totally = total
        print (totally)

Ответы [ 3 ]

2 голосов
/ 02 апреля 2020

вы можете использовать список для хранения всех ваших чисел, когда вы закончите sh ввод, вы можете вычислить среднее значение:

nums = []
i = int(input("enter another number: " ))
while i != -1:
    nums.append(i)
    i = int(input("enter another number: " ))
avg = sum(nums) / len(nums)
print(avg)

, если вам нравится однострочное решение:

from statistics import mean
from itertools import takewhile, count

print(mean(takewhile(lambda x : x !=-1, (int(input()) for _ in count() ))))

если вы хотите напечатать среднее значение:

nums = []
i = int(input("enter another number: " ))
while i != -1:
    nums.append(i)
    print(sum(nums) / len(nums))
    i = int(input("enter another number: " ))

, вы также можете использовать 2 переменные для хранения текущей суммы и общего количества:

i = int(input("enter another number: " ))
s = 0
c = 0
while i != -1:
    c += 1
    s += i
    print(s / c)
    i = int(input("enter another number: " ))
1 голос
/ 02 апреля 2020

Вероятно, вы должны определить свой общий var раньше, примерно так:

x = int(input ("enter a number: "))
total = x
numLoops = 1
y = 0
while y != -1:
    y = int(input("enter another number: " ))
    total += y # This will store the summation of y's in total var
    numLoops += 1

print(f"The average is: {total/numLoops}") # Prints the average of your nums

Дайте мне знать, помогло ли это! Спасибо!

0 голосов
/ 02 апреля 2020

Вы можете сделать следующее:

values = []
while True:
    x = int(input ("enter a number: "))
    if x == -1:
        break
    else:
        values.append(x)
print(sum(values)/len(values))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...