2016-11-14 95 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循環內移動平均打印語句,並將其保留在最後。