-1

我只需要弄清楚如何在使用 0 作为循环退出的同时找到用户所有这些输入数字的平均值。

我需要弄清楚如何消除使用 0 作为平均值的一部分。示例:5, 0, 5 ,5... 消除 0 后的平均值为 5。

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 , 

我该怎么做呢?

4

3 回答 3

1

在我看来,您需要保留一个计数器,告诉您用户输入了多少数字,以便您可以除以它以获得平均值(注意不要计算最后的 0)。顺便说一句,用户永远不能在5,0,5,5这里输入,因为在第一个 0 处,循环将中断,其他 2 个 5 将没有机会输入。

于 2012-09-22T01:27:30.827 回答
0

进行平均的方法是跟踪所有数字的“总和”和“# 个项目”,并在完成后将两者相除。

所以是这样的:

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
于 2012-09-22T01:30:37.510 回答
0

目前还不清楚你想要做什么:你想使用 0 作为退出循环的条件,还是只想跳过所有的零?

对于第一种情况(我从你的问题的标题中了解到),可以这样做:

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)

需要除法,float否则仅使用整数部分进行除法(例如,1、3 和 4 的平均值将给出 2,而不是 2.66667)。

它应该足够简单以适应第二种情况。

于 2012-09-22T01:35:27.147 回答