天天看點

擷取以逗号分隔的多個資料輸入成清單,計算基本統計值(平均值、标準差、中位數)‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬

擷取以逗号分隔的多個資料輸入(輸入為一行),計算基本統計值(平均值、标準差、中位數)‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

除中位數外,其他輸出保留小數點後兩位。

代碼如下:

#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按照從小到大排序