How to find the average of numbers being input, with 0 breaking the loop?
我只需要弄清楚如何使用0作为循环的退出来找到用户的所有这些输入数字的平均值。
我需要弄清楚如何消除使用0作为平均值的一部分。 例如:5,0,5,5 ...通过消除0,平均值为5。
1 2 3 4 5 6 7 8 9 10 11 | nA = 1 nSum = 0 print ('enter numbers to find the average') print ('enter 0 to quit.') while nA !=0: nA = input ('gemmi a number:') nSum+=nA dAvg = nSum print 'the total amount of numbers is' , nSum , print 'your average is' , dAvg , |
我该怎么做呢?
在我看来,你需要保留一个计数器,告诉你用户输入了多少个数字,这样你就可以除以它来得到平均值(注意不要计算最终的0)。顺便说一句,用户永远不能放入
目前还不清楚你想做什么:你想用0作为退出循环的条件,还是只想跳过所有的零?
对于第一种情况(我从你的问题的标题中理解),可以这样做:
1 2 3 4 5 6 7 8 9 10 11 12 13 | total = 0 nums = 0 readnum = None print("Enter numbers to find the average. Input 0 to exit.") while readnum != 0: readnum = int(raw_input('>')) total = total + readnum if readnum != 0: nums = nums + 1 print 'total amount of numbers is %d' % (nums) print 'avg is %f' % (float(total)/nums) |
需要除法上的
它应该足够简单以适应第二种情况。
做平均值的方法是跟踪所有数字和"#项目"的"总和",并在完成后将两者分开。
所以像这样:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | nCount = 0 nSum = 0 nA = 1 print ('enter numbers to find the average') print ('enter 0 to quit.') while nA != 0: nA = input ('gemmi a number:') if nA != 0: nCount = nCount + 1 nSum = nSum + nA dAvg = nSum / nCount print 'the total amount of numbers is' , nCount print 'your average is' , dAvg |