擷取以逗号分隔的多個資料輸入(輸入為一行),計算基本統計值(平均值、标準差、中位數)
除中位數外,其他輸出保留小數點後兩位。
代碼如下:
#CalStatistics.py
def getNum(): #擷取使用者不定長度的輸入
s = input()
ls = list(eval(s))
return ls
def mean(numbers): #計算平均值
s = 0.0
for num in numbers:
s = s+num
return s/len(numbers)
def dev(numbers,mean): #計算标準差
sdev = 0.0
for num in numbers:
sdev = sdev + (num - mean)**2
return pow(sdev / (len(numbers)-1), 0.5)
def median(numbers): #計算中位數
numbers.sort() #将清單排序
size = len(numbers)
if size % 2 == 0:
med = (numbers[size//2-1] + numbers[size//2])/2
else:
med = numbers[size//2]
return med
n = getNum() #主體函數
m = mean(n)
print("平均值:{:.2f},标準差:{:.2f},中位數:{}".format(m, dev(n,m),median(n)))
從控制台擷取多個不确定資料的方法
def get Num():
nums = []
s = input("請輸入數字(回車退出):")
while nums !="":
nums = eval(s)
s = input("請輸入數字(回車退出):")
return nums
分隔多個函數:子產品化設計方法
清單預設排序
ls.sort
或者
sorted(ls)
将清單ls按照從小到大排序