2016-11-07 80 views
-4

列表的範圍這是到目前爲止我的代碼:計算平均數,中位數和用戶輸入的整數

print ("Type '0' at any time to end program.") 
while True: 
    try: 
     x=int(input("Enter a positive integer. ")) 
     while x<0: 
      print ("Enter a POSITIVE integer.") 
      x=int(input("Enter a positive integer. ")) 
    except ValueError: 
     print ("Invalid character entered. Enter a positive integer.") 
    if x==0: 
     break 

我需要輸入整數,計算平均數,中位數和範圍他們。我會如何去做這件事?謝謝!

P.S使用Python 3

+0

歡迎來到Stack Overflow!你的問題是_Too Broad_:有太多可能的答案,或者這個格式的答案太長。請添加詳細信息以縮小答案集或隔離幾個段落中可以回答的問題。請參閱[我如何問一個好問題?](http://stackoverflow.com/help/how-to-ask)。 – Selcuk

+0

您需要將每個輸入到容器中的有效整數(例如「list」)存儲起來,然後遍歷其內容(可能需要多次),然後計算所需的各種值。 – martineau

回答

1

首先,你應該存儲在一個列表中的數字:

my_numbers = [] # at the start 
... 
my_numbers.append(x) # when you get a valid x 

然後statistics模塊提供meanmedian功能。

您的意思是,您也可以使用sum(my_numbers)/len(my_numbers),但statistics.mean函數對大數據集進行了更好的優化,並且只對輸入進行一次迭代。

對於範圍,您可以使用max(my_numbers) - min(my_numbers)

+0

因爲'max(my_numbers) - min(my_numbers)'計算範圍的大小,我相信範圍將從'min(my_numbers)'到'max(my_numbers)'。 – martineau