自學(xué)生信Python(第四天)|平均值的計(jì)算

平均值的計(jì)算

本人是一枚生物學(xué)的學(xué)生,由于對(duì)生物信息學(xué)特別感興趣,于是想自學(xué)生物信息學(xué)(新手莫怪)。了解到生物信息學(xué)要有編程基礎(chǔ),尤其是要會(huì)一門編程語言,例如:R語言、Python、Perl等,還要熟悉Linux系統(tǒng),作為生信小白,聽說Python挺簡(jiǎn)單的,于是就自學(xué)了Python,花了兩天時(shí)間了解了Python的基礎(chǔ)語法后,今天想做個(gè)練習(xí)題試試手(實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)),下面是練習(xí)題:(試題來源:《PYTHON生物信息學(xué)數(shù)據(jù)管理》)
原題是:假設(shè)讀者已經(jīng)測(cè)得 5 個(gè)樹突長(zhǎng)度,想知道它們的平均值:
原始答案是:

data = [3.53,3.47,3.51,3.72,3.43]
average = sum(data)/len(data)
print(average)

sum()函數(shù)將所有列表中的數(shù)據(jù)加起來,即

>>> sum (data)
17.66

len() 函數(shù)給出列表的項(xiàng)數(shù)(長(zhǎng)度) ,即

>>> len(data)
5

通過使用 len()和 sum() 的組合,就可以計(jì)算出任何非空列表的算術(shù)平均值,而且不必 在寫程序時(shí)知道共有多少項(xiàng)。如果數(shù)據(jù)包含整數(shù),則其結(jié)果將被默認(rèn)向下取整。 如果偏好 平均值帶小數(shù)位,則需要將總和或長(zhǎng)度轉(zhuǎn)換為浮點(diǎn)數(shù):

data = [1 , 2 , 3, 4]
average = float(sum(data)) /len(data)
print (average)

如果除法的其中一項(xiàng)是浮點(diǎn)數(shù),結(jié)果就會(huì)也是浮點(diǎn)數(shù)。
為了使程序能計(jì)算用戶輸入的數(shù)據(jù),特使用了input()函數(shù),實(shí)現(xiàn)用戶自主輸入數(shù)據(jù),并計(jì)算平均值。廢話少說,上手實(shí)踐:
第一步:定義變量
data=[]
定義數(shù)據(jù)列表data
第二步:獲取用戶輸入
①獲取用戶輸入
使用input()函數(shù)獲取用戶輸入

data1 = input("請(qǐng)輸入數(shù)值:",)

為了獲得用戶輸入的多個(gè)數(shù)據(jù),并用“,”將數(shù)據(jù)分開,使用split()切片隔離數(shù)據(jù),該步驟完整代碼如下:

data1 = input("請(qǐng)輸入數(shù)值:",).split(',')

②將字符轉(zhuǎn)化為數(shù)值
往往系統(tǒng)默認(rèn)用戶輸入的是字符,需要將其轉(zhuǎn)化為數(shù)值,所以需要使用eval()函數(shù),將用戶輸入的字符轉(zhuǎn)化為數(shù)值,使用笨方法for循環(huán)一下,代碼如下:

i = 0
for i in range(0,len(data1)):
    data.append(eval(data1[i]))
    i=i+1

第三步:計(jì)算公式
使用sum()函數(shù)將所有列表中的數(shù)據(jù)加起來,即sum (data)求和;
使用len() 函數(shù)給出列表的項(xiàng)數(shù)(長(zhǎng)度) ,即 len(data)求輸入的數(shù)的個(gè)數(shù);
通過使用 len()和 sum() 的組合,就可以計(jì)算出任何非空列表的算術(shù)平均值,而且不必在寫程序時(shí)知道共有多少項(xiàng)。
計(jì)算公式如下:

average = sum(data)/len(data)

第四步:輸出結(jié)果
將計(jì)算的結(jié)果打印出來:

print(average)

最后,將升級(jí)版的各個(gè)步驟的代碼匯總?cè)缦拢?/p>

data=[]
i = 0
data1 = input("請(qǐng)輸入數(shù)值:",).split(',')
for i in range(0,len(data1)):
    data.append(eval(data1[i]))
    i=i+1
average = sum(data)/len(data)
print(average)

雖然是簡(jiǎn)單的幾行代碼,就能實(shí)現(xiàn)獲取用戶輸入,并計(jì)算出用戶輸出的結(jié)果。感興趣的蛇友們,還可以加入異常判斷,如果用戶輸入的不是數(shù)字而是別的什么,實(shí)現(xiàn)也能使程序運(yùn)行不報(bào)錯(cuò),而且能提醒用戶重新輸入數(shù)據(jù)的功能。

雖然這是個(gè)小小的計(jì)算程序,但對(duì)于初學(xué)者的我來說每一次對(duì)原代碼的升級(jí)改造,哪怕是讀懂后的注釋都感覺是一次進(jìn)步提升,總之代碼雖小,動(dòng)手最重要!希望更多學(xué)習(xí)Python的愛好者不要像我一樣眼高手低,學(xué)習(xí)編程就是要,思考,敲碼,思考,敲碼,敲碼,再敲碼!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容