天天看點

python計算平均數_自學生信Python(第四天)|平均值的計算

平均值的計算

本人是一枚生物學的學生,由于對生物資訊學特别感興趣,于是想自學生物資訊學(新手莫怪)。了解到生物資訊學要有程式設計基礎,尤其是要會一門程式設計語言,例如:R語言、Python、Perl等,還要熟悉Linux系統,作為生信小白,聽說Python挺簡單的,于是就自學了Python,花了兩天時間了解了Python的基礎文法後,今天想做個練習題試試手(實踐是檢驗真理的唯一标準),下面是練習題:(試題來源:《PYTHON生物資訊學資料管理》)

原題是:假設讀者已經測得 5 個樹突長度,想知道它們的平均值:

原始答案是:

data = [3.53,3.47,3.51,3.72,3.43]

average = sum(data)/len(data)

print(average)

python計算平均數_自學生信Python(第四天)|平均值的計算

sum()函數将所有清單中的資料加起來,即

>>> sum (data)

17.66

len() 函數給出清單的項數(長度) ,即

>>> len(data)

5

通過使用 len()和 sum() 的組合,就可以計算出任何非空清單的算術平均值,而且不必 在寫程式時知道共有多少項。如果資料包含整數,則其結果将被預設向下取整。 如果偏好 平均值帶小數位,則需要将總和或長度轉換為浮點數:

data = [1 , 2 , 3, 4]

average = float(sum(data)) /len(data)

print (average)

如果除法的其中一項是浮點數,結果就會也是浮點數。

為了使程式能計算使用者輸入的資料,特使用了input()函數,實作使用者自主輸入資料,并計算平均值。廢話少說,上手實踐:

第一步:定義變量

data=[]

定義資料清單data

第二步:擷取使用者輸入

①擷取使用者輸入

使用input()函數擷取使用者輸入

data1 = input("請輸入數值:",)

為了獲得使用者輸入的多個資料,并用“,”将資料分開,使用split()切片隔離資料,該步驟完整代碼如下:

data1 = input("請輸入數值:",).split(',')

②将字元轉化為數值

往往系統預設使用者輸入的是字元,需要将其轉化為數值,是以需要使用eval()函數,将使用者輸入的字元轉化為數值,使用笨方法for循環一下,代碼如下:

i = 0

for i in range(0,len(data1)):

data.append(eval(data1[i]))

i=i+1

第三步:計算公式

使用sum()函數将所有清單中的資料加起來,即sum (data)求和;

使用len() 函數給出清單的項數(長度) ,即 len(data)求輸入的數的個數;

通過使用 len()和 sum() 的組合,就可以計算出任何非空清單的算術平均值,而且不必在寫程式時知道共有多少項。

計算公式如下:

average = sum(data)/len(data)

第四步:輸出結果

将計算的結果列印出來:

print(average)

最後,将更新版的各個步驟的代碼彙總如下:

data=[]

i = 0

data1 = input("請輸入數值:",).split(',')

for i in range(0,len(data1)):

data.append(eval(data1[i]))

i=i+1

average = sum(data)/len(data)

print(average)

雖然是簡單的幾行代碼,就能實作擷取使用者輸入,并計算出使用者輸出的結果。感興趣的蛇友們,還可以加入異常判斷,如果使用者輸入的不是數字而是别的什麼,實作也能使程式運作不報錯,而且能提醒使用者重新輸入資料的功能。

雖然這是個小小的計算程式,但對于初學者的我來說每一次對原代碼的更新改造,哪怕是讀懂後的注釋都感覺是一次進步提升,總之代碼雖小,動手最重要!希望更多學習Python的愛好者不要像我一樣眼高手低,學習程式設計就是要,思考,敲碼,思考,敲碼,敲碼,再敲碼!