2016-11-14 49 views
0
count = 0 
total = 0 
while True: 

    inp = raw_input ('enter a number:') 
    if inp == 'done' : break 
    if len(inp) < 1 : break 


    num = float(inp) 
    count = count + 1 
    total = total + num 
    print num, total, count 

print "average:", total/count 

我的打印输出没有显示出平均值,我错过了什么吗?没有得到的平均值

+0

我正在使用python。 –

+4

它显示我运行它时的平均值 –

+0

你会得到什么?尝试使用数字1-5 – Jacobr365

回答

0

我希望你忘一旦你完成喂养它的数字输入字符串done。或者,你可以按回车,给它一个空的输入。正如所写的,代码仅用于在完成这两件事之一后为您提供的平均值。

如果你想让它显示每个输入后的平均运行,缩进的最后一行代码,以便它的环路的一部分(即打印平均一个)。

+0

当我在其他计算机上运行它时,它不会让您输入“done”来查看实际的平均值。有谁知道为什么?不同的编译器的行为是否有所不同,终端的不同版本等? –

+0

这个程序可以在任何我能想到的控制台上运行Python 2的计算机上做同样的事情。如果行为有所不同,我会希望在你忽略的代码中有所不同(例如,循环是一个有限的'for'循环,而不是无限期的'while',或者最后一个循环行被缩进到您在另一台计算机上运行的版本的循环中)。除非你在没有意识到的情况下在另一台计算机上按两次返回值 - 这相当于输入'done'。 – jez

0

作品在Python 3.5

count = 0 
total = 0 
while True: 
    inp=input('enter a number:') 
    if inp == 'done' : break 
    if len(inp) < 1 : break 


    num = float(inp) 
    count = count + 1 
    total = total + num 
    print (num, total, count) 

print ("average:", total/count) 
1

作品在Python 2

enter a number: 5 
5.0 5.0 1 
enter a number: 9 
9.0 14.0 2 
enter a number: 7 
7.0 21.0 3 
enter a number: 0 
0.0 21.0 4 
enter a number: done 
average: 5.25 

您还可以使用numpy.mean。

0

您的代码工作正常。当您完成收集数据以显示平均值时,请不要忘记输入done!如果您希望在每次输入新号码时显示平均值,只需在while True循环内移动平均打印语句,并将其保留在最后。