我正在做一個編程的最終初學者課程,使用Python 3.我必須做一個任務。作業如下:計算平均未知輸入量
用Python編寫一個程序,它從Linux shell的標準輸入中讀取數字,並顯示這些數字的平均值,小數點後一位數。提示:使用具有兩個參數的循環函數。
我真的不知道如何計算未知量的輸入總和。我能找到的所有東西都是爲了知道輸入多少個數字。
到目前爲止,我有這樣的:
import sys
def main():
print ("To stop entering numbers and calculate average, press CTRL+D")
print ("Enter numbers:")
i = 0
for line in sys.stdin:
print (i, "\t", line.strip())
i = i + 1
sum = i +int(line.strip())
amount = i
average = sum/amount
print(sum)
print(amount)
print("The average of the numbers you entered is", round (average, 1),".")
main()
,但我覺得我完全是在錯誤的軌道上存在。現在會發生什麼是,在循環中的所有字符被計數的總和,所以你得到
4
1 4
6
2 6
2
3 2
sum 9
average 3
(9/3)
但我需要的,當然,(4+6+2)/3
。
我是100%的初學者,我以前從未做過任何編碼,而且這個課程應該適合像我這樣的人,但我不相信他們。
平均出來3是如何? –
循環爲每一行編號,所以如果你輸入1並輸入下一行是1 1,那麼2輸入,下一行是2 2.所有這些字符都被計數,所以這將是4個字符。正如你所看到的那樣,我在那裏有九個字符,但是不知何故,在分割時它意識到只有三個輸入字符,所以它將九(總數)除以三(輸入)。不幸的是,我不知道爲什麼。也許如果你複製代碼並自己嘗試一下,那麼我的意思就會更清晰一些。我還不知道所有的術語,所以我可能不會很清楚地解釋。 –
我不會回答它,但我會給你一些指導。首先,創建一個您從輸入中獲得的所有值的列表,作爲整數。當你成功完成這個任務時,你只需要總結這個數字列表併除以列表中的數字。 – acushner