conyieie
conyieie

Reputation: 225

how do I make a loop remember information from previous iterations?

I want to make a loop where I can input numbers, and then the loop will give me the average of the numbers that I inputted. But a problem that I am facing is that I do not know how to make the loop remember the previous numbers that I inputted. I want the loop to end if I put -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)

Upvotes: 1

Views: 1604

Answers (3)

EnriqueBet
EnriqueBet

Reputation: 1473

Probably you should define your total var before, something like this:

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

Upvotes: 1

kederrac
kederrac

Reputation: 17322

you may use a list to store all your numbers, when you finish the input you can compute the average:

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)

if you like one-line solution:

from statistics import mean
from itertools import takewhile, count

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

if you want to print intermediary average:

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

also, you could use 2 variables to hold the current sum and the total count:

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: " ))

Upvotes: 2

Gabio
Gabio

Reputation: 9494

You can do the following:

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

Upvotes: 0

Related Questions